扫码关注官方订阅号
尝试过body,html加属性overflow:hidden,pc端可以,移动端不行
认证高级PHP讲师
用$("body").bind("touchmove",function(event){event.preventDefault;//code});取消了body的拖动事件。
恢复这个拖动事件只要$("body").unbind("touchmove");
弹出的遮罩层可以修改为:
{ position: fixed; top: 0; left: 0; right: 0; bottom: 0; }
然后在弹出层禁用touchmove。也可以通过禁止冒泡也可以。
有很多方法,常见的
$('body').css({ overflow: 'hidden', height: $(window).height() + 'px' }) // 因为body的高度等于了window的高度,所以滚动自然就无法进行了,如果需要滚动了,只需要把高度从style标签上面移除就好了
$('body').css({ overflow: null, height: null }) // 删除style中相应的属性
目前我找到的最合适的方法是:判断event.srcElement是否为弹出层的子元素,如果是则不禁用body的默认事件,如果不是则禁用body的默认事件,当然还是会有bug
body加上position:relative,在移动端overflow:hidden就会生效
body
position:relative
overflow:hidden
html, body { position: relative; height: 100%; overflow: hidden; }
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
用$("body").bind("touchmove",function(event){event.preventDefault;//code});取消了body的拖动事件。
恢复这个拖动事件只要$("body").unbind("touchmove");
弹出的遮罩层可以修改为:
然后在弹出层禁用touchmove。
也可以通过禁止冒泡也可以。
有很多方法,常见的
目前我找到的最合适的方法是:判断event.srcElement是否为弹出层的子元素,如果是则不禁用body的默认事件,如果不是则禁用body的默认事件,当然还是会有bug
body加上position:relative,在移动端overflow:hidden就会生效