我在我的Nextjs中遇到了这个问题,即使在我将document.body.style.overflow
设置为hidden
之后,我也无法冻结页面滚动。
这就是代码:https://codesandbox.io/p/sandbox/gallant-leavitt-i0fz2c?file=%2Fpages%2Findex.tsx&selection=%5B%7B%22endColumn%22%3A28%2C%22endLineNumber%22%3A13%2C%22startColumn%22%3A27%2C%22startLineNumber%22%3A13%7D%5D
如你所见:在第11-14行,我单击冻结按钮,它禁用滚动。enter image description here
结果:页面仍然可滚动。
请让我知道这个问题的解决方案。
1条答案
按热度按时间5jvtdoz21#
除了
overflow:hidden
之外,还需要添加position:fixed
阻止滚动会丢失滚动位置。因此,当重新启用滚动时,它会将滚动位置重置到页面顶部,而不是用户离开的位置。为了防止这种情况,您需要设置scrollTop位置。