• 插件的使用(3)


    移动端点击事件的延迟现象:

    原因: 移动端的双击事件会产生页面缩放的效果; 所以移动端在判断clicka事件的时候会有 300ms 左右的延迟;

    解决方法:

      1. 禁止移动端页面的缩放

        `<meta name = "viewport" content="user-scalable=no" > `

        缺点: 页面无法缩放

      2. 更改默认视口的宽度 

        `<meta name="viewport" content="width=device-width">`

            缺点: 需要浏览器的支持

      3. css touch-action: none;

        缺点: 新属性, 可能需要浏览器的支持

      4.zepto中封装的tap事件

        缺点: 穿透

    //穿透产生的条件
        //1. 两个兄弟元素,其中一个浮动在另一个上(如果是父子元素, 就涉及到冒泡了)
        
        //2. 浮在上面的元素触发touch事件,该元素隐藏;由于touch事件连带也会触发click事件,click事件会有300ms左右的延迟, 而此时第一个元素已经消失, 
    所以click事假会在第二个元素上触发
    

      5. fastclick插件

      原理: 在检测到touchend事件后, 会通过dom自定义事件模拟一个click事件,并把浏览器300ms之后真正触发的点击事件屏蔽掉

    //fastclick 插件的使用方法
    
         //1.引入js
     <script src="js/zepto.min.js"></script>
     <script src="js/fastclick.js"></script>//
    
         //2. 给body所有的元素绑定click事件,之后click事件就可以正常使用
      $(function() {
    
          FastClick.attach(document.body);
    
      });

    tips: 

     1) 移动端添加事件,使用 addEventListener; 如果是jq对象要转为dom对象

     2) 移动端的 touchstart touchmove touchend 事件 类似pc端的 mousedown mousemove mouseup 事件

        targetTouches  changedTouches

  • 相关阅读:
    【转载】Oracle实例和Oracle数据库(Oracle体系结构)
    【转载】Oracle 11g R2 for Win7旗舰版(64位)- 安装
    eclipse 中卸载插件的方法
    eclipse编辑jsp文件和javascript代码很卡解决办法
    ExtJS登陆页面涉及到的几个问题
    一个关于ExtJS4具体控件的详细教程
    ES6与React中this完全解惑
    for, for..in, in, for...of的区别
    Sublime Text3的react代码校验插件
    Sublime Text3中JSX支持Emmet快捷键
  • 原文地址:https://www.cnblogs.com/noraZhang/p/10143398.html
Copyright © 2020-2023  润新知