我在尝试滚动元素而不调用普通事件处理程序时偶然发现了这个
同时使用Firefox和IE10我在 See JSFiddle example。有趣的是,如果我在分配前设置1ms的超时,the problem goes away。我很想知道这里发生了什么,以及解决问题的最佳方法。 更新:从下面的评论中可能会发现这可能被认为是正常的浏览器行为,所以我会更新我的问题,询问这里发生了什么 - 请引用一些有趣的文章来更详细地解释这个过程。scrollTop
方法操作方式上看到了一些非常奇怪的行为。例如,如果我在scrollTop
和 aferwards 上设置div
,请将scroll
事件处理程序绑定到同一元素,处理程序会立即触发。根据我的测试,这个不会发生在Chrome上,这让我觉得FF和IE正在将最微小的动画应用到他们的卷轴上,或者这是某种错误。< / p>
答案 0 :(得分:8)
IE和FF中的内容如下:
这与此代码不同:
var dv = document.getElementsByTagName("div")[0];
dv.scrollTop = dv.scrollHeight;
setTimeout(function(){
dv.onscroll = function() {
console.log("scrolled!");
}, 0);
以下情况如下: