客戶需求:禁止微信內的H5頁面上下拖動;
解決方案:
網上的答案幾乎都是阻止默認事件,即:
1 document.body.addEventListener('touchmove' , function(e){ 2 e.preventDefault(); 3 });
但是使用這個方法還存在一定的問題:
bug1:有時生效有時失效;
原因:經過不間斷的實踐測試,發現有可能是網絡加載的問題,在用戶拖動頁面的時候上面的功能代碼還沒加載出來,所以沒有生效。
解決方法:監聽頁面資源加載,等頁面內所有資源加載完畢后再將頁面顯示出來。代碼如下:
1 document.onreadystatechange = function () { 2 if (document.readyState == "complete") { 3 document.body.style.display = "block"; 4 } else { 5 document.body.style.display = "none"; 6 }; 7 };
bug2:華為P6、P9,魅族等手機上無效;
原因:有可能是安卓版本較低,存在兼容問題;(測試機有限,目前測的是安卓4.4上無效)
解決方法:暫未找到合適的解決方案,如有大神解決此類問題,歡迎留言指導~
謝謝~