当前位置:首页 > 日记 > 正文

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

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

场景:

微信下拉时可以查看到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的处理方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复

相关文章

wps2016如何设置文档不同页眉

wps2016如何设置文档不同页眉

页眉,文档,方法,设置,如何设置,  在wps编辑文档时,可能由于各章节的标题不同,所以其要求页眉的内容也不同,那么,我们怎样去设置不同章节的页眉呢?下面给大家分享wps2016设置不同页眉的方法,欢迎大家来到学习。wps2016设置不同页眉的方法如图所…

JS简单实现自定义右键菜单实例

JS简单实现自定义右键菜单实例

右键菜单,简单实现,自定义,实例,电脑软件,RT,一个简单的例子,仅仅讲述原理 复制代码 代码如下:<div id="menu" style="width: 0;height: 0;background: cadetblue;position: absolute"></menu>假设我要把上面这个div设置为右键菜单,先随意…

excel做趋势图的方法图解教程

excel做趋势图的方法图解教程

趋势,方法,教程,绘制,电脑软件,  咱们学理工科的学生经常需要处理数据,并作出相应的趋势图。如何作图呢,下面小编来为大家详细介绍做趋势图的图解教程,希望对你有帮助!Excel做趋势图的方法首先,选中数据区域,连名称一起选上。选择插入&mdash;散…

对word2013文档进行加密的两种方法

对word2013文档进行加密的两种方法

文档,方法,加密,两种,电脑软件,  一些情况下需要对office文档进行保护设置,加密就是其中一种很有效的方法,其他保护文档的方法还有限制编辑、限制访问和添加数字签名等。那么下面就由小编给大家分享下对word2013文档进行设置密码的技巧,希望…

怎么在word中制作文档封面在word中

怎么在word中制作文档封面在word中

文档,步骤,方法,封面,电脑软件,  一篇优秀的文档除了内容具体详细外,&ldquo;精致美观&rdquo;也是必不可少的要求之一。一份美观的文档往往能让你在领导心中的印象分提高不少!下面下编教你怎么在word中制作文档封面。在word中制作文档封面…

Vue之Watcher源码解析(1)

Vue之Watcher源码解析(1)

源码,电脑软件,Vue,Watcher,上一节最后再次调用了mount函数,我发现竟然跳到了7000多行的那个函数,之前我还说因为声明早了被覆盖,看来我错了!就是这个函数:// Line-7531 Vue$3.prototype.$mount = function(el, hydrating) { el = el && inB…

学好js,这些js函数概念一定要知道【

学好js,这些js函数概念一定要知道【

推荐,函数,电脑软件,js,函数创建方式 1.声明方式 例如:function consoleTip (){ console.log("tip!"); } 2.表达式方式 例如:var consoleTip = function(){ console.log("tip!"); }两种方式的区别: 1.表达式方式适合用来定义只使用一次的…

详解web存储中的storage

详解web存储中的storage

详解,电脑软件,web,storage,web存储之storage 近期工作中使用的数据存储比较多,在工作之余写一篇关于存储的博客来加深自己的印象,希望大家多多批评指正。一、 web存储分为两种,sessionStorage、localStorage;二、 web存储的特性;1.设置…

H5上传本地并预览功能

H5上传本地并预览功能

上传,功能,电脑软件,最近工作中需要H5上传显示图片的功能,如图:直接上代码:html部分<div class="works-wrap"> <div class="figure-box" id="figure_box"></div> <div class="add-btn"> <input type="file" id="imgUploadBtn"…

Node.js数据库操作之连接MySQL数据

Node.js数据库操作之连接MySQL数据

数据库操作,数据库,连接,电脑软件,Node,介绍首先说来介绍一下MySQL(非广告)。MySQL是由瑞典的MySQL AB公司开发,后来被甲骨文公司收购。和Oracle一样,MySQL是一个典型的关系型数据库,在百度百科中,把MySQL称为是最好的关系数据库管理系统的之一。…

jquery.uploadifive插件怎么解决上

jquery.uploadifive插件怎么解决上

上传,文件大小,插件,电脑软件,jquery,jQuery.uploadifive插件可以很好的解决上传限制图片或文件大小问题,具体方法如下所示:插件是可以用 但遇到问题如何提示是否超过限制呢没办法研究插件js 发现网上给的提示这个插件里竟然没有没有没有.…

excel表格打印缩小放在一张纸的教

excel表格打印缩小放在一张纸的教

缩小,教程,放在,一张纸,表格,  在Excel中录入的数据过多导致一张纸打印不完,但是放到第二张纸又觉得浪费,这个时候就需要我们进行缩小打印,具体该如何设置缩小打印呢?下面是由小编分享的excel表格打印缩小放在一张纸的教程,以供大家阅读和学…