Javascript 或 CSS 以防止在内容溢出的元素内滚动

标签 javascript css

我有这个正在开发中的网站。在 body 标签内,我有两个并排的绝对定位 div。一个是窗口宽度的 100%,另一个是 80%。它们被占窗口 100% 宽度的 body 标签包裹。

我在正文中添加了“overflow-x:hidden”以隐藏 80% 宽度的 div 并防止水平滚动。到目前为止一切顺利,除了在移动设备上您可以触摸拖动(滚动)到其他不可滚动的内容(第二个 div)。如果您左右滚动鼠标滚轮(按下鼠标中键并左右拖动鼠标),也会发生同样的事情。如果不使第二个元素(宽度为 80% 的元素)为 0% 宽度,我该如何防止滚动发生?

最佳答案

这似乎是 webkit 浏览器及其处理单轴溢出的方式的问题(我敢说是错误)...您可能已经注意到 firefox 不受影响。

经过一些实验,它看起来可能是由 overflow-x:hidden 与基于百分比的高度的组合触发的 - 参见 fiddle ,问题最初并不存在于此,但如果您取消注释 height:100% css 并再次运行它,您会注意到问题 list :

http://jsfiddle.net/OACDesigns/WFkSY/6/

正如其他人所提到的,我认为此时最好的解决方案是根据需要在导航菜单元素上使用 display:none。 另一种方法是重新考虑布局的结构和样式,并尝试以不会触发此错误的方式进行。

关于Javascript 或 CSS 以防止在内容溢出的元素内滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23351797/

相关文章:

javascript - 下拉菜单元素在选项卡上失去焦点

JQuery 添加 css 不是内联的

javascript - Angular JS http post不写入文件

javascript - 代码在 jsfiddle 中运行良好,但在本地保存时运行不佳

javascript - 为什么 Vue.js/Axios 不渲染我定义的数据?

php - $_POST 单击提交按钮时的 javascript Date() 时间

javascript - 有没有办法在谷歌服务器上存储谷歌浏览器扩展的信息?

CSS 可见性规则

javascript - 颜色转换 JavaScript

css - 背景颜色 : inherit doesn't work on input element on IE 8/9/10