【发布时间】:2020-03-21 00:06:03
【问题描述】:
我遇到了一个问题,即在 html 和 body 元素上设置 overflow-x: hidden 会阻止触发 jquery 滚动事件。
CSS:
html, body {
overflow-x: hidden;
}
JS:
$(function(){
$(window).on("scroll", function(e){
console.log("scrolling");
});
});
自己试试吧: 注释掉 overflow-x: hidden 并弹出打开你的控制台。当您向上和向下滚动 html 框时,您应该会看到记录了“滚动”。重新评论它,滚动事件是静默的。
有人知道为什么会这样吗?我知道,当您将溢出设置为隐藏时,它会禁用滚动,但它应该只对您正在设置的轴执行此操作(仅在这种情况下为 x)。提前感谢您的帮助。
【问题讨论】:
-
$('body').on('scroll')怎么样? -
更具体地说,你的窗口没有滚动,你的 html/body 是。如果您删除
height: 100%;您的窗口滚动将正常工作。 -
当你设置overflow-x:hidden时,你看到的滚动条是针对body的。缩小高度,你会看到两个滚动条,一个用于正文,一个用于窗口。所以...... Torr3ent 说了什么。 jsfiddle.net/r7Fqq/7
-
谢谢,解决得很好。感谢您的帮助。
标签: jquery html css scroll overflow