微信禁止下拉查看URL的處理方法
場景:
微信下拉時可以查看到URL,本身是微信的一種安全策略之一,也是一種用戶交互友好的體驗;
效果原理:
微信下拉彈性效果其實是瀏覽器本身的一種特性,重點就是scroll值的一種體現(xiàn);
處理策略:
1、直接禁止mobile端的touchmove事件;
這種策略一般適用頁面只有一屏不需要下拉情況下使用;
var touch1 = function(){ document.querySelector(‘body‘).addEventListener(‘touchmove‘, function (e) { e.preventDefault(); }); }
弊端:對于大小不同的屏要考慮到內(nèi)容一屏全部顯示,不然2+屏的內(nèi)容就沒有辦法看了;
2、禁止touchmove同時判斷scroll的位置是否到達頂部;
考慮到下拉時滾動條是否到達頂部 <= 10 來禁止touchmove事件,同時考慮存在先上拉再下拉的情況所以監(jiān)聽的touchend事件并計算一次touch事件流中的最高點位置用以判斷
var touch2 = function () { var lastY;//最后一次y坐標點 var betterY;//每次touch最高點 document.querySelector(‘body‘).addEventListener('touchstart', function(event) { lastY = event.originalEvent.changedTouches[0].clientY; betterY = lastY; }); document.querySelector(‘body‘).addEventListener('touchmove', function(event) { var y = event.originalEvent.changedTouches[0].clientY; if(y > betterY){ betterY = y; } var st = document.body.scrollTop; //滾動條高度 if (y >= lastY && st <= 10) { lastY = y; event.preventDefault(); } lastY = y; }); document.querySelector(‘body‘).addEventListener('touchend', function(event) { var y = event.originalEvent.changedTouches[0].clientY; var st = document.body.scrollTop; //滾動條高度 if(y < betterY && st <= 10){ event.preventDefault(); } }); }
弊端:第一次的touchmove存在漏洞問題,touchmove的過程中也存在漏洞
3、監(jiān)聽scroll的滾動事件,禁止高度<0;
每當滾動條的高度小于0時就重置為0,強制回退頂部位置
var touch3 = function () { window.onscroll = function () { var top = document.documentElement.scrollTop || document.body.scrollTop; if(top <= 0){ document.body.scrollTop = 0; } } }
弊端:會存在下拉URL閃屏的現(xiàn)象
總結(jié):
可以考慮以上三種策略結(jié)合來使用會更好;也有些人把touchmove禁掉后自己模擬touchmove處理,也是可以做到的就是比較復雜而已;
以上所述是小編給大家介紹的微信禁止下拉查看URL的處理方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復
相關(guān)文章
JS如何去掉小數(shù)末尾多余的0,并且最多保留兩位小數(shù)
這篇文章主要介紹了JS如何去掉小數(shù)末尾多余的0,并且最多保留兩位小數(shù)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-04-04js實現(xiàn)對table動態(tài)添加、刪除和更新的方法
這篇文章主要介紹了js實現(xiàn)對table動態(tài)添加、刪除和更新的方法,涉及javascript針對html中table表格節(jié)點的操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-02-02bootstrap+jQuery 實現(xiàn)下拉菜單中復選框全選和全不選效果
這篇文章主要給大家介紹了關(guān)于利用bootstrap+jQuery 實現(xiàn)下拉菜單中復選框全選和全不選效果的相關(guān)資料,文中給出了完整的示例代碼供大家參考學習,對大家具有一定的參考學習價值,需要的朋友下面來一起看看吧。2017-06-06