javascript - 移动页面滚动穿透如何解决
迷茫
迷茫 2017-04-10 15:35:28
[JavaScript讨论组]

在安卓系统的webview下写的页面,各种版本包括4.4,当弹出一个半透明全屏的弹框后,这时在PC上滚动条应该是不可用的,但是在webview下,在弹框上用手指滑动,弹框下面的页面是会跟着动的。不知道有没有人能解决,去谷歌也不知道用什么关键词,百度真是坑爹 = =! 求大神指点

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(13)
阿神

我解决的方法就是在弹层出现后,将它下面可能出现的元素的设置:

    dom.style.overflowY = 'hidden';

关闭弹层后再恢复这个特性

怪我咯

终极解决答案... 经过一年多的探索... 给大家一个答案... 我也是日了狗了...
<body> <ui-view class="container" style="display: block; height: 100%; overflow: auto"></ui-view> <p id="showDetail" class="show-detail" ng-show="showDetail" ng-include="'showDetail.html'"></p> </body>
这里 ui-view这个标签是正常显示的,点击上面的元素后弹出showDetail。
一次无意间的测试,在ui-view的标签上加了一个overflow:auto 滚动就不穿透了...
如果不在对应的需要滚动的容器上,加这个样式的话,最后滚动条会在body上。
射了这个样式的话 window.on('scroll') 也会失效。这个时候要监听container上的scroll

PHPz

https://bumfo.github.io/dialog.html

迷茫

禁用弹框下页面滚动

.alpha {
    height: 100%;
    overflow: hidden;
    position: relative;
}

.alpha body {
    height: 100%;
    overflow: hidden;
}

当你遮盖弹出的时候或者隐藏的时候让 html 切换 class alpha

$('html').toggleClass('alpha');
大家讲道理

同样遇到了这个问题

ringa_lee

禁止事件冒泡

迷茫

300毫秒带来的问题

高洛峰

我咋没觉得这是个问题呢,我觉得挺好的,不就应该这样吗

高洛峰

wap下我是这样处理的,还没嵌入到webview验证。

点击弹框的时候,给html,body加上一个class,控制样式为:

  overflow-y: hidden;
PHP中文网

Fastclick?

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

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