Zepto swipe 在安卓、微信 无效的解决方法

做公司的一个手机站,发现zepto的touch.js在安卓上的兼容性有bug,主要是在微信上无法触发swipe*事件,而且这个 bug 作者不愿意修,理由是:我特么没有安卓设备。发生这种bug的原因大概是安卓设备上

网上找到了一个大神的初步解决方案:在touch.js中加一段代码:

.on(‘touchmove MSPointerMove pointermove‘, function(e){
        if((_isPointerType = isPointerEventType(e, ‘move‘)) &&
          !isPrimaryTouch(e)) return
        firstTouch = _isPointerType ? e : e.touches[0]
        cancelLongTap()
        touch.x2 = firstTouch.pageX
        touch.y2 = firstTouch.pageY

        deltaX += Math.abs(touch.x1 - touch.x2)
        deltaY += Math.abs(touch.y1 - touch.y2)

        /**
         * 修复 android 4.4 swipe 事件
         * https://github.com/madrobby/zepto/issues/315#issuecomment-8386027
         */
        if (touch.x2 && Math.abs(touch.x1 - touch.x2) > 10)
            e.preventDefault()
      })

点击原因及进一步fix

时间: 2024-10-05 17:11:47

Zepto swipe 在安卓、微信 无效的解决方法的相关文章

MUI下拉加载安卓手机无效的解决方法

解决方法: 第一步:在html中定义全局变量: <script>var h5pullDown = true;</script> 第二步:确定引入的js是mui.js,不是mui.min.js: <script src="mui.js"></script> 第三步:在源码中加入对h5+的判断,打开mui.js文件,修改两个地方: 1.搜索"mui.init pulldownRefresh",在下拉初始化中找到如下代码:

移动端:active伪类无效的解决方法

:active伪类常用于设定点击状态下或其他被激活状态下一个链接的样式.最常用于锚点<a href="#">这种情况,一般主流浏览器下也支持其他元素,如button等.在多按键的鼠标系统中,:active只适用于主按键,目前的大部分情况都是左键即主键. 该伪类下定义的CSS样式只在按下鼠标按钮与释放鼠标按钮之间的短暂瞬间被触发显示.使用键盘的tab键也可以触发:active状态. 说到:active伪类就不得不提到:link,:visited,:hover,:active这

C# ASP.NET Webservice调用外部exe无效的解决方法

最近用asp.net做webservice,其中有个功能是调用执行外部的exe(类似cmd中执行),但执行Process.Start之后就没有结果,同样代码在winform下正常,折腾两天终于找到解决方法 本文参考了以下网页,十分感谢 http://bbs.csdn.net/topics/300053869 http://blog.163.com/[email protected]/blog/static/15737970200862331842368/ 环境:win7 sp1 64位 以及II

js中style.display=&quot;&quot;无效的解决方法

本文实例讲述了js中style.display=""无效的解决方法.分享给大家供大家参考.具体解决方法如下: 一.问题描述: 在js中我们有时想动态的控制一个div显示或隐藏或更多的操作,但如果我们style.display=""可能导致没有效果. 看下面一段代码: 复制代码代码如下: <style> #name {     display:none; }</style></head><body><div id=

system.ComponentModel.Win32Exception (0x80004005): 目录名无效。 解决方法

有时候我们需要在程序中调用 cmd.exe  执行一些命令 比如 我们会在程序写到 /// <summary> /// 执行Cmd命令 /// </summary> /// <param name="workingDirectory">要启动的进程的目录</param> /// <param name="command">要执行的命令</param> private void StartCmd(

IE下iframe height=&quot;100%&quot;无效的解决方法

IE7下iframe height="100%"无效的解决方法就是css如下写法: 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml&q

vs2008【断点无效】解决方法

有时候,我们在用vs2008调试的时候,会出现断点无效.如下图: 第一反应,要看想一下是不是在debug下.如果在Release下,请参考我另篇文章 [怎么在Release下调试代码] 如果是在debug下: 1.检查工程配置是否设置正确. C++>General->Debug Information Format->Program Database (/Zi) C++>Optimization->Optimization->Disabled (/Od) Linker-

无法获得VMCI 驱动程序的版本: 句柄无效。解决方法

关闭虚拟机,找到安装路径,用记事本打开.vmx结尾的文件 找到vmci0.present = "TRUE" 把TRUE改为FALSE,保存,再次打开虚拟机,问题解决. 无法获得VMCI 驱动程序的版本: 句柄无效.解决方法

android4.0 禁止横竖屏切换使用 android:configChanges="orientation|keyboardHidden"无效的解决方法

Android横竖屏幕切换时注意4.0以上配置configChanges要加上screenSize,要不还会调用onCreate(). <activity android:name=".MainActivity" android:configChanges="orientation|keyboardHidden|screenSize"/> android4.0 禁止横竖屏切换使用 android:configChanges="orientati