javascript - 前端移动端开发, 滑动时怎么禁止阴影层下的屏幕滚动.
天蓬老师
天蓬老师 2017-04-11 12:51:52
[JavaScript讨论组]

前端移动端开发, 在页面中打开了一个层,同时打开一个遮罩层, 滚动这个层时 下面的页面也会跟着滚动.
怎么禁止下面那个页面的滚动, 只滚动当前的层.

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(6)
ringa_lee

我的做法是阻止touchstart事件的默认行为,不知道有没有更好的方法.
在vue下
@touchstart.prevent
可以这样,
在弹出层和底层元素之间曾加一层遮罩

<p>底层</p>
<p class="mask">遮罩层</p>
<p>弹出层</p>

然后

.mask{position:fixed;left:0;top:0;right:0;bottom:0}

然后

$('.mask').on('touchmove',function(e){e.preventDefault()})
阿神

打开弹层时body的touchmove事件addEventListener增加阻止默认行为的事件,关闭弹层时removeEventListener

PHP中文网

这个还得确定一下那个弹出层是你自己写的还是插件,如果是你自己写的,就把对应的touchmove/mousemove事件通过添加事件监听器addEventListener阻止一下默认事件。如果是插件,就两个都加上。

迷茫

禁止滚动的层设置overflow:hidden看看?

伊谢尔伦

现在的解决办法是
修改body的position为fixed, 弹窗消失的时候再恢复就行了。

巴扎黑

js,或者给body设置一屏高度,再设置overflow:hidden

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号