Javascript DOM操作是否可能触发浏览器滚动事件(除了用户操作或显式调用,例如$.ScrollTop)?
我正在研究一个问题,用户触发一个滚动事件,我们处理它,在这样做的过程中,不知何故触发了第二个滚动事件。我们的代码与此类似。在现实生活中,“thead”被埋藏在许多层次的容器中,等等Javascript DOM操作是否可能触发浏览器滚动事件(除了用户操作或显式调用,例如$.ScrollTop)?,javascript,jquery,Javascript,Jquery,我正在研究一个问题,用户触发一个滚动事件,我们处理它,在这样做的过程中,不知何故触发了第二个滚动事件。我们的代码与此类似。在现实生活中,“thead”被埋藏在许多层次的容器中,等等 $(window).on('scroll', function(){ $('thead').css('position','fixed'); }) 触发动作似乎是固定元素的位置。这会导致document.height发生更改,这是有道理的,但此类操作通常不会导致发生滚动事件(据我所知) 我可以用浏览器高度和
$(window).on('scroll', function(){
$('thead').css('position','fixed');
})
触发动作似乎是固定元素的位置。这会导致document.height发生更改,这是有道理的,但此类操作通常不会导致发生滚动事件(据我所知)
我可以用浏览器高度和文档高度的特定组合在我们的应用程序(这是一堆jQuery)中重现这一点(尽管我看不到模式;我只知道有效的值)
我无法在一个简单的案例中重现它,我整天都在努力
我确信,$.ScrollTop()或等效函数没有被调用,用户只做了一个手势
在我看来,jQuery事件对象就像是第二个用户发起的事件,例如,没有任何证据表明事件2是由事件1引起的
这是在Chrome上发生的,还没有尝试过其他浏览器。非常感谢您的建议。当您将任何元素设置为“位置:固定/绝对”时,您的文档的高度将发生更改,因为更改后的元素将脱离正常流程,并且不会向下推下下一个元素(读取CSS位置属性)。这与从页面中删除元素相同 所以,如果您位于页面底部,并且其中一个元素消失,浏览器会向上滚动页面以补偿删除的元素的高度(将您留在页面底部)