首页 >web前端 >css教程 >如何在保持滚动条可见的同时禁用滚动?

如何在保持滚动条可见的同时禁用滚动?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-26 10:06:16560浏览

How Can I Disable Scrolling While Keeping the Scrollbar Visible?

在禁用滚动时保留滚动条可见性

虽然可以使用 Overflow:hidden 来隐藏滚动条,但这种方法可能会在您的网站上产生视觉变化。如果您想在不影响可见性的情况下禁用滚动,请按以下步骤操作:

固定页面位置:

如果叠加层下方的页面可以固定在顶部,请应用打开叠加层时遵循 CSS:

body {
  position: fixed;
  overflow-y: scroll;
}

这将保留滚动条可见性,但阻止内容滚动。要在覆盖关闭时恢复滚动,请使用以下 CSS:

body {
  position: static;
  overflow-y: auto;
}

保留滚动位置:

如果页面已预先滚动,请获取 document.documentElement.scrollTop使用 JavaScript。动态地将此值分配为 body 元素的顶部属性。这将在整个叠加层持续时间内保持当前滚动位置。

CSS:

.noscroll {
  position: fixed;
  top: var(--st, 0);
  inline-size: 100%;
  overflow-y: scroll;
}

JS:

const b = document.body;
b.style.setProperty('--st', -(document.documentElement.scrollTop) + "px");
b.classList.add('noscroll');

以上是如何在保持滚动条可见的同时禁用滚动?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn