首页 >web前端 >css教程 >如何禁用正文滚动条而不隐藏它?

如何禁用正文滚动条而不隐藏它?

Barbara Streisand
Barbara Streisand原创
2024-12-08 17:28:14802浏览

How to Disable Body Scrollbar Without Hiding It?

在保留可见性的同时禁用 HTML/Body 滚动条

为了获得最佳的灯箱体验,人们可能希望暂时禁用父元素的滚动条而不隐藏它。要实现此目的,请考虑以下方法:

修复父元素:

打开灯箱时,将以下 CSS 属性分配给叠加层下方的页面:

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

这会修复页面的位置并限制垂直滚动到页面本身,同时保持滚动条的可见性。

灯箱关闭时重置:

关闭灯箱时,恢复原始 CSS 属性:

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

处理现有的滚动:

要保留页面当前的滚动位置,在打开lightbox之前使用JavaScript获取文档的scrollTop值并将其指定为body元素的top属性:

.noscroll {
  position: fixed;
  top: var(--st, 0);
  inline-size: 100%;
  overflow-y: scroll;
}
const b = document.body;
b.style.setProperty('--st', -(document.documentElement.scrollTop) + "px");
b.classList.add('noscroll');

以上是如何禁用正文滚动条而不隐藏它?的详细内容。更多信息请关注PHP中文网其他相关文章!

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