关于使用zepto框架中的tap click穿透事件 webapp开发

来源:互联网 发布:乐乎公寓公益西桥 编辑:程序博客网 时间:2024/06/05 06:27

最近在做webapp开发,其中用到了zepto框架,在使用click的时候遇到了点击透传事件,问题如下:

事件描述:初始界面触发界面事件变化元素A相对应的位置上切换到目标界面的时候同样位置存在一个元素B绑定了事件处理,一定情况下A触发的时候B也会被触发,这种现象称之为穿透效应。

     事件解决方式:

        第一位置为touchstart/touchend事件,第二位置为touchstart/touchend事件,未透传

        第一位置为touchstart/touchend事件,第二位置click事件,触发透传

        第一位置为touchstart/touchend事件,第二位置Input元素,触发透传

        第一位置为click事件,第二位置touchstart/touchend事件,未触发

        第一位置为click事件,第二位置为click事件,未触发

 

     结论:第一位置与第二位置使用相同类型的事件

                 第二位置为input元素时,第一位置使用click事件。

 

     Ps:关于移动端的clicktouch原理,帮助理解使用规则,具体触发顺序为:

         Touchstart->touchmove->touchend->mousedown->mousemove->mouseenter->click

         所以一旦当有click事件晚于touch,那么一定为触发透传效应。最好的是取消click,利用touchstart ,touchmove ,touchend一并模拟click事件。


   attachment tips : Android 4.0以下不支持原生的webview滚动,启用原生滚动只需要给外层元素加上样式-webkit-overflow-scrolling : touch. 

0 0
原创粉丝点击