時間:2016-04-19 22:20:09html
做者:zhongxiaandroid
Q:爲何swipeUp和swipeDown在手機測試不成功??git
A: 把這段代碼添加到 zepto.min.js 的最上面github
document.addEventListener('touchmove', function (event) { event.preventDefault(); }, false);
這段代碼仍是有問題: 內容太長出現滾動條以後, 沒有辦法滾動瀏覽器
作公司的一個手機站,發現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() })
雖說這點代碼, 可是這段代碼要放在什麼地方呢? 測試
加載 自執行函數裏面的 $(window).on 的綁定事件上spa
DEMO: http://zhongxia245.github.io/demo/ZeptoTouch/index.htmlcode
能夠在微信掃碼,打開試一下,Android 的瀏覽器一樣能夠試一下