我正在开发具有可滚动功能的模态窗口,类似于Pinterest。当它们被触发时,在
当模态窗口的滚动结束时,如果文档比模态窗口更长,则滚动将继续。
我尝试着只接受由模态窗口或其容器触发的滚动,以解决这个问题:
body
上定义overflow: hidden
,在模态框容器上定义overflow: auto
。这在桌面浏览器上非常有效,但我在iPad上进行了第一次测试(我认为在iOS上普遍存在此问题)发现了一个问题:当模态窗口的滚动结束时,如果文档比模态窗口更长,则滚动将继续。
我尝试着只接受由模态窗口或其容器触发的滚动,以解决这个问题:
// Disable browser scrolling on iOS
$(document).on('touchmove',function(e) {
if (($(e.target).attr('id') != id) &&
($(e.target).attr('id') != ('modal-'+id))) {
e.preventDefault();
}
});
只要严格按照这样做,它就能真正起到作用。模态框滚动时,在滚动结束后,只有在模态框内滚动才能滚动页面。
你有什么想法吗?
如果你愿意,可以在ipad上尝试一下(你需要点击模态框按钮):http://www.onebigrobot.com/beta/altair/transforms-so
提前感谢!