直接贴图
如图,这里有一个弹出的层,然后这个弹出层是可以上下滚动的
但是滚动它的同时,底部的那层也会跟着滚动,有时候只滚动了底层,而弹出层却不滚动,太蛋疼了。。。
有好的办法解决吗? 搜了几个都没什么用。。
直接贴图
如图,这里有一个弹出的层,然后这个弹出层是可以上下滚动的
但是滚动它的同时,底部的那层也会跟着滚动,有时候只滚动了底层,而弹出层却不滚动,太蛋疼了。。。
有好的办法解决吗? 搜了几个都没什么用。。
这其实是手机浏览器一个非常“顽固”的也似乎难以解决默认事件。
我之前也遇到过,最初也是各种阻止默认事件啊,PC有用,但是移动端一点用也没有。
后来是加了
html,body{ height:100%, overflow:hidden }
但是这样做会导致内容返回顶部。
后来研究了下天猫,他们也没有很好的解决,有的地方底部仍然可以滑动。
研究过苏宁易购,他们做的比较有意思,先记录下当前的位置,虽然底部内容也是可以滑动的,当弹出层关闭后,再返回那个位置。当然他们的弹出层是全屏没有透明度的,但是对于这样有透明遮罩层就不行了。
后来想想,影响也不大也就不管了。
真要做的话,像iscroll构建页面,滑动是通过CSS3 transform变化实现缓冲来做的或许可以解决。
可以去体验下天猫触屏版,他们的左侧弹出菜单那样,虽然你在头部滑动,底下依然会滚动,不过真可以解决一些问题。
document.addEventListener('touchmove', function (event) {
//判断条件,条件成立才阻止背景页面滚动,其他情况不会再影响到页面滚动
if (reson) {
event.preventDefault();
}
})
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
5 回答1.9k 阅读
禁止默认事件