为什么在注册事件侦听器并触发事件侦听器之前调用滚动事件?

金恩秀

   window.scroll(0,10);
   window.addEventListener('scroll', function(e){
     console.log("event!");  
   });

  1. 我在滚动事件之后注册了一个事件侦听器,但是为什么是“事件!” 在控制台上显示?
  2. 为什么会发生“事件!” 滚动一次时在控制台上出现两次?
损失源

调用滚动处理程序两次的原因可能是因为浏览器试图恢复刷新页面之前的滚动位置。

验证一下

  1. 去掉 window.scroll(0,10);
  2. 手动向下滚动页面
  3. 刷新页面
  4. 请注意,您的事件已触发。

至于为什么即使window.scroll在注册处理程序之前就调用了'scroll'事件,这似乎与以下内容有关:

这个答案可能还有更多的指针https://stackoverflow.com/a/59559610/149636

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章