微信禁止下拉查看URL策略
2017-05-09 17:14
267 查看
摘要: 禁止微信下拉反弹时可以查看到URL
场景:
微信下拉时可以查看到URL,本身是微信的一种安全策略之一,也是一种用户交互友好的体验;
效果原理:
微信下拉弹性效果其实是浏览器本身的一种特性,重点就是scroll值的一种体现;
处理策略:
1、直接禁止mobile端的touchmove事件;
这种策略一般适用页面只有一屏不需要下拉情况下使用;
弊端:对于大小不同的屏要考虑到内容一屏全部显示,不然2+屏的内容就没有办法看了;
2、禁止touchmove同时判断scroll的位置是否到达顶部;
考虑到下拉时滚动条是否到达顶部 <= 10 来禁止touchmove事件,同时考虑存在先上拉再下拉的情况所以监听的touchend事件并计算一次touch事件流中的最高点位置用以判断
弊端:第一次的touchmove存在漏洞问题,touchmove的过程中也存在漏洞
3、监听scroll的滚动事件,禁止高度<0;
每当滚动条的高度小于0时就重置为0,强制回退顶部位置
弊端:会存在下拉URL闪屏的现象
总结:
可以考虑以上三种策略结合来使用会更好;也有些人把touchmove禁掉后自己模拟touchmove处理,也是可以做到的就是比较复杂而已;
大千世界,奇人异事,见怪不怪,欢迎大家吐槽,虚心学习...
场景:
微信下拉时可以查看到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处理,也是可以做到的就是比较复杂而已;
大千世界,奇人异事,见怪不怪,欢迎大家吐槽,虚心学习...
相关文章推荐
- 微信浏览器禁止页面下拉查看网址
- 微信浏览器禁止页面下拉查看网址(不影响页面内部scroll)
- 微信浏览器禁止页面下拉查看网址(不影响页面内部scroll)
- 微信浏览器禁止页面下拉查看网址(不影响页面内部scroll)
- 微信禁止下拉查看URL的处理方法
- 禁止微信浏览器下拉回弹的效果。
- 微信较完美实现禁止下拉弹性效果
- 禁止微信下拉
- js实现微信禁止h5网页下拉,禁止微信内置浏览器下拉网页,附:demo
- 微信小程序 禁止ios页面下拉下滑滚动 出现空白的情况
- 禁止微信下拉 露出黑色背景
- 微信、手机页面禁止页面下拉
- 微信禁止下拉代码
- JavaScript禁止微信浏览器下拉回弹效果
- 微信浏览器禁止页面下拉查看网址实例详解
- 微信浏览器禁止页面下拉查看网址
- JavaScript禁止微信浏览器下拉回弹效果
- 微信h5页面禁止下拉露出网页来源
- 微信浏览器禁止页面下拉查看网址(不影响页面内部scroll)
- Android打包APK后禁止通过DMMS的Logcat查看程序输出的调试信息