CSS:如何防止在iOS Safari上滚动?

时间:2015-03-01 06:41:14

标签: html css modal-dialog mobile-safari

我创建了一个模态。打开模态后,我将使用overflow:hidden;停止桌面上的滚动到<body>。它正在工作。

但它不适用于我的iPhone 6s Mobile Safari。

如果在移动版Safari中打开模态时如何阻止滚动?

2 个答案:

答案 0 :(得分:24)

据我所知,没有一种很好的方法可以通过CSS实现这一点,而不会影响用户体验。

虽然它是Javascript,而不是CSS,但我发现这样做的最佳方式如下:

// Disable scrolling.
document.ontouchmove = function (e) {
  e.preventDefault();
}

// Enable scrolling.
document.ontouchmove = function (e) {
  return true;
}

答案 1 :(得分:19)

将其与position: fixed相结合,在iOS上执行此操作...

overflow: hidden;
position: fixed;