时间:2021-05-26
在微信网页开发中,我使用的页面结构是在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.com/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.stopPropagation(); startY = event.touches[0].pageY; }); $('.page').on('touchmove', function(event) { event.stopPropagation(); var endY = event.changedTouches[0].pageY; var changedY = endY - startY; var scroll_top = $('.page').scrollTop(); // 判断是否在顶部,且向下拖动 if (scroll_top === 0 && changedY > 0) { event.preventDefault(); } // 判断是否在底部,且向上拖动 var o = $('.bottom').offset(); if (o.top + 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; top: 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; top: 80px; background-color: #ccc; 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中防止微信浏览器被整体拖动的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
用js限制网页只在微信浏览器中打开js代码一$(function(){//判断页面是否是在微信浏览器打开//对浏览器的UserAgent进行正则匹配,不含有微信
目前为止,微信电脑版还是未推出,只有微信网页版,在浏览器中可以添加微信网页版,方便快捷登录。在搜狗浏览器中如何添加微信呢?其实就是在浏览器中添加一个插件。软
现在随着微信的使用越来越广,除了手机,现在浏览器中也在不断的增加着它的网页版的微信。在360安全浏览器7中,当我们下载安装好了这个浏览器,刚打开浏览器页面的时候
QQ浏览器的网页版微信窗口可以一直显示的浏览器的左侧栏,这样可以边上网,边聊微信两不误。下面小编简单介绍下如何使用。方法/步骤打开QQ浏览器,点击左上角的微信图
微信电脑版系列软件最新版本下载33.23MB微信电脑版立即下载QQ浏览器微信版,QQ浏览器与微信两个产品线团队合作,联合开发了QQ浏览器微信版,在即将发布的浏览