如何在iPad上禁用模态蒙版后面的滚动
How to disable scrolling behind a modal mask on iPad?
我正在创建一个web应用程序,也应该在iPad上工作。现在在iOS 5中,甚至滚动也可以正常工作。但我的问题是,如果我有一个模态窗口,模态掩码后面的滚动是启用的,即使其他事件被禁用。有人知道如何关闭模态蒙版后面的滚动吗?
的例子:
启用了滚动的网格:
.z-grid{
overflow: scroll;
-webkit-overflow-scrolling: touch;
z-index: 1;
}
模态掩码:
.z-modal-mask {
background:#E0E1E3 none repeat scroll 0 0;
height:100%;
left:0;
opacity:0.6;
position:absolute;
top:0;
width:100%;
z-index:30000;
}
元素z-grid
需要激活位置以启用z-index。尝试position: relative;
或position: absolute;
。因为我看不见你的标记,所以我不能说具体是哪一个
.z-grid{
overflow: scroll;
-webkit-overflow-scrolling: touch;
z-index: 1;
position: relative; /*or absolute*/
}
我看过很多关于在模态后面的ipad上禁用body滚动的答案,没有一个被发现是合适的,特别是当模态上有一个可滚动的div时,我发现这个javascript逻辑的组合来自另一个SO用户,然后在弹出窗口关闭上卸载事件处理程序。
在弹出窗口/对话框中打开:
//uses document because document will be topmost level in bubbling
$(document).on('touchmove', function (e) {
e.preventDefault();
});
//uses body because jquery on events are called off of the element they are
//added to, so bubbling would not work if we used document instead.
$('body').on('touchstart', '.scrollable', function (e) {
if (e.currentTarget.scrollTop === 0) {
e.currentTarget.scrollTop = 1;
} else if (e.currentTarget.scrollHeight === e.currentTarget.scrollTop + e.currentTarget.offsetHeight) {
e.currentTarget.scrollTop -= 1;
}
});
//prevents preventDefault from being called on document if it sees a scrollable div
$('body').on('touchmove', '.scrollable', function (e) {
e.stopPropagation();
});
在弹出/对话框中关闭:
$(document).off('touchmove');
$('body').off('touchstart', '.scrollable');
$('body').off('touchmove', '.scrollable');
上面提到的scrollable
只是让你需要滚动的元素免除逻辑,如果元素有css类集。
在我的情况下,我有一个可滚动的div在我的弹出,导致各种各样的问题,所以禁用背景滚动,但仍然允许滚动在对话框可滚动的div内,确保你添加一个scrollable
类到你的可滚动的div,所以它被忽略。
相关文章:
- 自举模态力滚动到顶部
- 使用媒体查询在较小的屏幕上仅滚动模态的距离
- 在哪里可以找到类似于Pinterest的可滚动模态框的模态窗口/框
- 平滑滚动 JavaScript 影响模态功能
- 引导 - 模态有时会中断滚动
- 仅在模态上禁用/启用滚动
- 滚动以隐藏Javascript模态
- 在哪里可以找到jQuery“;可滚动的“;模态窗口插件
- 如何检测引导模态滚动条的位置
- 我怎么能阻止我的引导模态按钮从滚动页面
- 如何在javascript中滚动到模态窗口的顶部
- 如何在iPad上禁用模态蒙版后面的滚动
- Javascript模态窗口需要向下滚动才能看到
- 在模态窗口中实现可滚动选项卡
- 如何使用jquery滚动到模态中的元素
- 我怎样才能确保jQuery加载的可滚动模态内容总是滚动回顶部
- jquery模态防止滚动和防止移动回到页面顶部的模态打开
- 如何使一个引导模态与可滚动的内容和最大高度
- 打开模态时无法滚动
- 页面滚动时滚动模态