js禁止滑到最顶端时微信浏览器中显示当前网址
来源:互联网 发布:国企程序员面试题 编辑:程序博客网 时间:2024/06/05 00:12
做移动端开发的小伙伴们应该遇到过一个问题:h5页面在微信端打开的时候,滑到最顶部再网上滑就会出现一段黑色的背景,并且显示当前页面url,虽然一般情况下不会有太大的影响,但是如果要自定义显示内容就会影响我们的需求了。找了很多方法,都是简单粗暴地直接e.preventDefault(),但这样会禁止内部Scroll,导致页面不能滚动,上拉加载失效,太残暴了,找了很久,终于找到了办法,可以达到禁止微信黑底并且不影响页面其他滑动,在此记录下:// 首先禁止body document.body.ontouchmove = function (e) { e.preventDefault(); };// 然后取得触摸点的坐标 var startX = 0, startY = 0; //touchstart事件 function touchSatrtFunc(evt) { try { //evt.preventDefault(); //阻止触摸时浏览器的缩放、滚动条滚动等 var touch = evt.touches[0]; //获取第一个触点 var x = Number(touch.pageX); //页面触点X坐标 var y = Number(touch.pageY); //页面触点Y坐标 //记录触点初始位置 startX = x; startY = y; } catch (e) { alert('touchSatrtFunc:' + e.message); } } document.addEventListener('touchstart', touchSatrtFunc, false);// 然后对允许滚动的条件进行判断,这里讲滚动的元素指向body var _ss = document.body; _ss.ontouchmove = function (ev) { var _point = ev.touches[0], _top = _ss.scrollTop; // 什么时候到底部 var _bottomFaVal = _ss.scrollHeight - _ss.offsetHeight; // 到达顶端 if (_top === 0) { // 阻止向下滑动 if (_point.clientY > startY) { ev.preventDefault(); } else { // 阻止冒泡 // 正常执行 ev.stopPropagation(); } } else if (_top === _bottomFaVal) { // 到达底部 如果想禁止页面滚动和上拉加载,讲这段注释放开,也就是在滚动到页面底部的制售阻止默认事件 // 阻止向上滑动 // if (_point.clientY < startY) { // ev.preventDefault(); // } else { // // 阻止冒泡 // // 正常执行 // ev.stopPropagation(); // } } else if (_top > 0 && _top < _bottomFaVal) { ev.stopPropagation(); } else { ev.preventDefault(); } };
查看原文:http://lidada.org/wechart-stop/
阅读全文
0 0
- js禁止滑到最顶端时微信浏览器中显示当前网址
- 让火狐浏览器显示当前访问网址的IP
- 如何获得当前屏幕顶端距离整个页面最上端的距离(即js获取浏览器滚动条距离顶端的距离)
- JS中显示当前时间
- JS获取当前网址
- 手机浏览器判断,窗口宽度,获取当前页面的顶端到页面顶端的距离
- js 去掉alert在手机浏览器显示网址的网址信息
- js获取当前详细网址
- JS获取当前网址信息
- JS获取当前网址信息
- js获取浏览器滚动条距离顶端的距离
- js获取浏览器滚动条距离顶端的距离
- js 获取浏览器滚动条距离顶端的距离
- js获取浏览器滚动条距离顶端的距离
- js获取浏览器滚动条距离顶端的距离
- js jquery 获取某一元素到浏览器顶端的距离
- JS判断当前浏览器
- JS禁止浏览器后退键
- 计算机作业五
- hibernate要用到的jar包
- 微信小程序数据请求方法wx.request
- 关于xgboost
- 高级Java程序员必须要会的知识点
- js禁止滑到最顶端时微信浏览器中显示当前网址
- Hibernate Validator5.4.2--声明和验证方法约束
- AngularJS_table添加/批量删除数据
- 搭建Git服务器
- Eclipse闪退/打不开/无法启动/一闪而过
- Java中的String为什么是不可变的?—String源码分析
- oracle安装+打补丁
- UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合) 继承、实现、依赖、关联、聚合、组合的联系与区别 分别介绍这几种关系: 继承 指的是一个类(称为子类、子接口)继承另外的一个类(称为父
- 添加MyEclipse WebSphere Portal Server支持