Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript DOM操作是否可能触发浏览器滚动事件(除了用户操作或显式调用,例如$.ScrollTop)?_Javascript_Jquery - Fatal编程技术网

Javascript DOM操作是否可能触发浏览器滚动事件(除了用户操作或显式调用,例如$.ScrollTop)?

Javascript DOM操作是否可能触发浏览器滚动事件(除了用户操作或显式调用,例如$.ScrollTop)?,javascript,jquery,Javascript,Jquery,我正在研究一个问题,用户触发一个滚动事件,我们处理它,在这样做的过程中,不知何故触发了第二个滚动事件。我们的代码与此类似。在现实生活中,“thead”被埋藏在许多层次的容器中,等等 $(window).on('scroll', function(){ $('thead').css('position','fixed'); }) 触发动作似乎是固定元素的位置。这会导致document.height发生更改,这是有道理的,但此类操作通常不会导致发生滚动事件(据我所知) 我可以用浏览器高度和

我正在研究一个问题,用户触发一个滚动事件,我们处理它,在这样做的过程中,不知何故触发了第二个滚动事件。我们的代码与此类似。在现实生活中,“thead”被埋藏在许多层次的容器中,等等

$(window).on('scroll', function(){
    $('thead').css('position','fixed');
})
触发动作似乎是固定元素的位置。这会导致document.height发生更改,这是有道理的,但此类操作通常不会导致发生滚动事件(据我所知)

我可以用浏览器高度和文档高度的特定组合在我们的应用程序(这是一堆jQuery)中重现这一点(尽管我看不到模式;我只知道有效的值)

我无法在一个简单的案例中重现它,我整天都在努力

我确信,$.ScrollTop()或等效函数没有被调用,用户只做了一个手势

在我看来,jQuery事件对象就像是第二个用户发起的事件,例如,没有任何证据表明事件2是由事件1引起的


这是在Chrome上发生的,还没有尝试过其他浏览器。非常感谢您的建议。

当您将任何元素设置为“位置:固定/绝对”时,您的文档的高度将发生更改,因为更改后的元素将脱离正常流程,并且不会向下推下下一个元素(读取CSS位置属性)。这与从页面中删除元素相同

所以,如果您位于页面底部,并且其中一个元素消失,浏览器会向上滚动页面以补偿删除的元素的高度(将您留在页面底部)