javascript - 防止底层 div 在 iOS Safari 中滚动

标签 javascript jquery ios css mobile-safari

我有一个 div,高度为 100%,视口(viewport)高度为 70%,overflow:scroll

现在我想创建一个覆盖 div,触摸设备可以使用它来滚动整个页面而不是 div

我用 position:absolute 和整页高度创建了一个 div。如果 Android 用户拖动此 div,整个页面会像预期的那样滚动。然而,在 iOS7 上,底层的 div 是滚动的,就像触摸事件通过 div 一样。

JSFiddle

.scrollDiv{
    width:100%;
    height:200px;
    overflow-y:scroll;
    border:solid 1px #f00;
    -webkit-overflow-scrolling: touch;
}
.pageScroller{
    position:absolute;
    right:0;
    top:0;
    bottom:0;
    width:50%;
    background-color: rgba(0,0,0,0.7);
}

如果您使用 iOS7 并将页面 div 拖到滚动的 div 上,滚动的 div 将滚动而不是页面。

有人知道这个的解决方案吗?

最佳答案

在您的 .pageScroller 滚动元素上,添加 overflow-y: scroll;-webkit-overflow-scrolling: touch; 属性,连同一个积极的 z-index。这可以防止滚动 Action 到达下面的“层”。

.pageScroller{
    position:absolute;
    right:0;
    top:0;
    bottom:0;
    width:50%;
    z-index: 1;
    background-color: rgba(0,0,0,0.7);
    overflow-y:scroll;
    -webkit-overflow-scrolling: touch;
}

检查这个 JSfiddle:http://jsfiddle.net/R9Ut6/

关于javascript - 防止底层 div 在 iOS Safari 中滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22895647/

相关文章:

javascript - 旋转(360 度)圆形 div 内的文本选框动画

javascript - 异步对话框中的 JQuery Promises

ios - 在 Customize UIView 上添加 subview 效果不如预期

ios - 为 iOS 或 OSX 开发蓝牙 4.0 BLE 应用程序的成本?

ios - 将可选 TextView 的顶部 anchor 限制为底部 anchor

javascript - 如何设置 webpack 以支持 Node 中的 ES6 模块

javascript - 事件处理复选框 - jQuery icheck 插件

javascript - 位置 "/cadastro"处的匹配叶路由没有元素。这意味着默认情况下它将呈现一个具有空值的 <Outlet/>

jquery - 了解 jQuery Deferred.pipe()

javascript - 如何创建弹跳 div 动画