javascript 无法在ios上禁用滚动[重复]

busg9geu  于 2022-12-28  发布在  Java
关注(0)|答案(1)|浏览(98)
    • 此问题在此处已有答案**:

(18个答案)
昨天关门了。
我的网站上有一个用户发布内容的可滚动提要。有一个按钮可以触发一个弹出窗口/覆盖层,应该暂停滚动。我找到了一种方法来暂停PC浏览器,但我无法暂停我的iPhone上的滚动造成一个奇怪的视觉故障,显示弹出窗口/覆盖层后面的内容仍然滚动,好像它是顶部的内容。
我试过将位置更改为固定,但这不会保存用户单击弹出窗口/覆盖按钮之前的位置。相反,它会将用户返回到页面顶部。我希望冻结用户,无论他们在屏幕下方多远,这样当他们关闭弹出窗口时,他们将能够再次滚动。

<script>
            function NewPostPopup() {
                const noscroll = document.getElementById("newpostpopup").classList.toggle("active");
                if (noscroll) {
                    document.body.style.overflow = "hidden";
                } 
                else {
                    document.body.style.overflow = "auto";
                }
            }
        </script>
q8l4jmvw

q8l4jmvw1#

添加此样式

body {
  position: fixed;
}

这个逻辑

window.addEventListener("scroll", (e) => {
  e.preventDefault();
  window.scrollTo(0, 0);
});

相关问题