JavaScript中防止微信浏览器被整体拖动的方法
网络编程 2021-07-04 18:33www.168986.cn编程入门
这篇文章主要介绍了JavaScript中防止微信浏览器被整体拖动的方法,需要的朋友可以参考下
在微信网页开发中,我使用的页面结构是在body下的container覆盖全屏,container下有个header和page的容器,page负责显示所有内容并实现滚动。
结构如图
遇到了一个问题在页面已经滚动到顶部时,继续往下拖动page容器,会将微信浏览器整体往下拖,漏出“该网页由XXX提供”的提示,然后在安卓下,影响并不大,在iphone下,就没那么简单了,经过测试,在苹果下,往下拖动后快速滑动页面中的page,page并不会滚动,上拖同样遇到了这个问题,非常影响体验。
查阅文献后,我准备在touchstart和touchmove上做些处理。
思路是当page页面滚动到顶部时,再向下拖动会阻止默认的拖动事件,page页面到底后也阻止向上拖动。结构与代码如下
doctype html
html head title 微信拖动测试 meta(charset="utf-8") meta(name="viewport", content="initial-scale=1, maximum-scale=1, minimum-scale=1") link(rel='stylesheet', href='/stylesheets/style.css') script(src="http://apps.bdimg./libs/zepto/1.1.4/zepto.min.js") body #container .header | header .page .box box1 in page .box box2 in page .box box3 in page .box.bottom box4 in page script. $(function() { var startY, endY; var box_height = $('#container').height(); $('.page').on('touchstart', function(event) { event.sPropagation(); startY = event.touches[0].pageY; }); $('.page').on('touchmove', function(event) { event.sPropagation(); var endY = event.changedTouches[0].pageY; var changedY = endY - startY; var scroll_ = $('.page').scrollTop(); // 判断是否在顶部,且向下拖动 if (scroll_ === 0 && changedY > 0) { event.preventDefault(); } // 判断是否在底部,且向上拖动 var o = $('.bottom').offset(); if (o. + o.height === box_height && changedY < 0) { event.preventDefault(); } }); // header禁止拖动 $('.header').on('touchmove', function(event) { event.preventDefault(); }); });
样式如下
{ padding: 0; margin: 0; } #container{ position: absolute; left: 0; : 0; right: 0; bottom: 0; background-color: #efefef; color: #fff; text-align: center; font-size: 40px; } .header{ position: absolute; left: 0; right: 0; height: 80px; line-height: 80px; background-color: #ddd; } .page{ position: absolute; left: 0; right: 0; bottom: 0; : 80px; background-color: #c; overflow-y: auto; -webkit-overflow-scrolling: touch; } .page > { z-index: 1; } .box{ width: 100%; height: 300px; line-height: 300px; box-sizing: border-box; border-bottom: 2px solid #fff; }
以上所述是长沙网络推广给大家介绍的JavaScript中防止微信浏览器被整体拖动的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,长沙网络推广会及时回复大家的。在此也非常感谢大家对狼蚁SEO网站的支持!
编程语言
- 宿迁百度关键词排名指南:实现精准营销的关键
- 四川SEO优化怎么做网络推广
- 立昂技术备案老域名收购:如何为您的业务赋能
- 安徽百度关键词seo贵不贵,一般需要多少钱
- 吉林百度快照排名怎么做电话营销
- 多伦新手做SEO怎么做
- 甘肃优化关键词排名推广怎么做论坛营销
- 沙雅SEO网站推广:提升您的在线可见性
- 四川SEO优化如何提升销售额和销售量
- 聂荣网站排名优化:提升网站可见性的全方位指
- 涞水SEO:提升地方企业在线可见性的策略
- 辽宁百度seo排名怎样做网站排名
- 临湘哪有关键词排名优化:提升网站可见度的关
- 黑龙江百度网站优化有没有优惠
- 凉城优化关键词排名推广:提升您的网络可见性
- 萝北整站优化:提升您网站流量和排名的全面指