以编程方式滚动时,'scroll'事件是否可以保证被触发?

时间:2017-01-05 17:23:15

标签: javascript dom-events

在Chrome中,如果我有一个onscroll处理程序:

document.body.onscroll = function () {console.log('foo')}

...我以编程方式滚动文档:

document.body.scrollTop = 7

...然后onscroll处理程序触发。

我可以在浏览器中依赖此行为,还是只会触发用户操作引起的滚动处理程序?这是在任何地方推出的吗?

1 个答案:

答案 0 :(得分:0)

我仍然不知道规范对此有何看法(如果有的话),但我现在已经测试并确认处理程序在最新版本中的:

  • Chrome(桌面)
  • Chrome(移动版)
  • 火狐
  • 边缘
  • Safari(桌面)

如果您要测试某个平台,请在其上弹出https://jsfiddle.net/14nckcw1/4/embedded/result/并等待;如果您在1秒后看到警报,则程序化滚动会触发该平台上的onscroll处理程序。我不知道其他地方的情况并非如此。