最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 对于移动端点透事件原理及解决方法

    正文概述 掘金(-晚秋初八)   2021-03-26   605

    发生条件

      A z-index 大于B,即A显示在B浮层之上;A发生touch,A发生touch后立即消失,B事件绑定click。

    原理

      当手指触摸到屏幕的时候,系统生成两个事件,一个是touch,一个是click;touch先执行,touch执行完成后,A事件从文档树上消失了,而且由于移动端click有200ms-300ms的延迟,所以当系统要触发click的时候,发现在用户点击的位置上面,目前离用户最近的元素是B,所以就直接把click事件作用在B元素上了。

    原因

      由于click在移动端里有200ms-300ms的延时造成的,对于PC端并没有点透事件,因为在PC端用户使用鼠标点击时,click事件没有延迟。

    解决方法

      1.可以在github上引入fastclick,引入fastclick.js,因为fastclick源码不依赖其他库所以你可    以在原生的js前直接加上

      window.addEventListener( "load", function() {
    FastClick.attach( document.body );
    }, false );

      如果是require的话:

      var FastClick = require(‘fastclick‘);
    FastClick.attach(document.body, options);

    2.将onClick事件换成on TouchEnd事件,并阻止默认事件e.preventDefault();

    3.延迟一定的时间来处理事件,一般延迟300ms以上

      $("#aa").on("tap", function (event) {
    setTimeout(function(){
    //很多处理比如隐藏什么的
    },320);
    });
    这种方法其实很好,可以和fadeInIn/fadeOut等动画结合使用,可以做出过度效果

    4.在目标页面加入遮罩层

      在目标页面加上一层透明的弹层,使上一个页面的点击在此弹层上失效,具体做法为使用一个 高阶组件,在高阶组件中添加一个定时器,在每个页面加载的时候生成一个弹层,400ms之后消失弹层即可。


    起源地下载网 » 对于移动端点透事件原理及解决方法

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元