国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

微信禁止下拉查看URL的處理方法

2024-05-06 16:40:05
字體:
來源:轉載
供稿:網友

場景:

微信下拉時可以查看到URL,本身是微信的一種安全策略之一,也是一種用戶交互友好的體驗;

效果原理:

微信下拉彈性效果其實是瀏覽器本身的一種特性,重點就是scroll值的一種體現;

處理策略:

1、直接禁止mobile端的touchmove事件;

這種策略一般適用頁面只有一屏不需要下拉情況下使用;

var touch1 = function(){  document.querySelector(‘body‘).addEventListener(‘touchmove‘, function (e) {     e.preventDefault();   });}

弊端:對于大小不同的屏要考慮到內容一屏全部顯示,不然2+屏的內容就沒有辦法看了;

2、禁止touchmove同時判斷scroll的位置是否到達頂部;

考慮到下拉時滾動條是否到達頂部 <= 10 來禁止touchmove事件,同時考慮存在先上拉再下拉的情況所以監聽的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、監聽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閃屏的現象

總結:

可以考慮以上三種策略結合來使用會更好;也有些人把touchmove禁掉后自己模擬touchmove處理,也是可以做到的就是比較復雜而已;

以上所述是小編給大家介紹的微信禁止下拉查看URL的處理方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 洛南县| 淮安市| 曲麻莱县| 鄢陵县| 古丈县| 吴川市| 平陆县| 吴堡县| 蒲城县| 桐庐县| 博兴县| 会昌县| 西峡县| 桃江县| 额敏县| 绥德县| 赤壁市| 吕梁市| 盘锦市| 兴仁县| 东海县| 庆云县| 固始县| 宜阳县| 迭部县| 天镇县| 洛扎县| 财经| 垣曲县| 塔城市| 民县| 阜新| 酒泉市| 淄博市| 喀喇| 普陀区| 荆门市| 金乡县| 观塘区| 呼和浩特市| 双辽市|