Firefox滚动条重置错误

时间:2012-10-23 23:33:47

标签: firefox scrollbar

我在Firefox浏览器中遇到过问题。这可能是一个错误,但也许有人知道一个解决方法。以下JSFiddle证明了这个问题:http://jsfiddle.net/F5tdB/这已在Firefox 12.0,15.0.1,16.0.1上测试过。

用文字解释......你必须遵循这一系列事件:

  1. 获取一个带有overflow:auto的元素和一些溢出的内容,然后滚动一下;
  2. 隐藏元素(display: none);
  3. 删除内容
  4. 显示元素(现在为空)
  5. 重新添加相同的内容(现在滚动,就像以前一样)
  6. 通过Javascript将scrollTop / scrollLeft重置为0.
  7. 结果,内容确实滚动到正确的位置,但滚动条保持不变,这显然是错误的。

    对于删除/重新添加元素而不仅仅是隐藏元素,是否有任何解决方法?

2 个答案:

答案 0 :(得分:3)

在测试中,我发现如果将scrollTop设置为0以外的任何值(或其当前值),则会正确更新滚动条。然后,您可以立即将scrollTop设置为0。

特别是当您有测试用例时,您当然应该在Bugzilla中提交错误。

答案 1 :(得分:0)

解决方案是添加animate方法,因此请使用:

function resetScroll(){
    $(document).scrollTop(1); // removes the impression of animation
    $('html,body').animate({scrollTop:0},'fast','linear');
}