【发布时间】:2015-10-17 03:50:57
【问题描述】:
我正在构建一个 Web 应用程序并使用 Google Chrome 进行测试。我有一个侧边栏元素,如果我将鼠标悬停在该元素上,我想禁用 body 元素的滚动。
我通过在用户将鼠标悬停在侧边栏上时使用 CSS 在 body 标记上设置 overflow: hidden 来实现这一点。我在没有插入 USB 鼠标的浏览器上进行了测试,效果很好:
侧边栏关闭(body滚动条可见)
侧边栏打开 - 错误(body 滚动条仍然可见,产生难看的重叠)
侧边栏打开 - 好(我的解决方法:隐藏 body 滚动条,以便侧边栏滚动条单独显示)
这是因为 Google Chrome 不会将滚动条呈现为实际元素(具有宽度)。但是,当我插入 USB 鼠标时,滚动条现在确实有宽度。因此,当我将鼠标从滚动条外部移动到滚动条内部时,宽度会突然改变:
悬停前(body滚动条可见)
悬停后 - 坏(body 滚动条隐藏,突然减小整个侧边栏的宽度)
这会产生一种非常丑陋和有故障的视觉效果,当您将鼠标悬停在元素上时,它们的宽度会发生变化。我到处寻找解决方案...任何帮助将不胜感激!非常感谢!
【问题讨论】:
-
请您发一个Minimal, Complete, and Verifiable example,它将帮助我们解决您的问题。
标签: css google-chrome scrollbar overflow mouse