2

我正在尝试将一些文本(div)附加到可滚动的 div,然后自动滚动底部。

出于某种原因,当我尝试在 IE8 中执行此操作时,它不起作用。取消注释 'alert' 行表明 IE8 返回 ScrollHeight 属性的两个值。

Jquery 追加是异步运行还是 DOM 需要时间来刷新?

处理这个问题的正确方法是什么?

有问题的HTML页面:

款式:

.scrollbox
{
   border-style: solid;
   overflow-y: scroll;
   padding: 5px;
   margin: 20px;
   border-color: #C0C0C0;
   height: 400px;
   width: 500px;
   font-family: "Times New Roman", Times, serif;
   font-size: 20px;
   color: #333333;
}

jQuery脚本:

$(document).ready(function() {
    var node = $("#list");
    for (i = 1; i <= 100; i++) {
        node.append("<div>Item :" + i + "</div>");
    }
    //alert(node.attr("scrollHeight"));
    //alert(node.attr("scrollHeight"));
    node.animate({ scrollTop: node.attr("scrollHeight") }, 500);
});

身体:

<div id="list" class="scrollbox"></div>
4

3 回答 3

1

我也遇到了这个问题——对我来说这似乎是 IE8 的一个缺陷(兼容模式没有表现出相同的行为)。在我的情况下,我只读取一次值以“启动”它并忽略结果,然后后续读取是正确的。不理想,但似乎工作正常。

于 2010-06-30T18:34:04.200 回答
1

您是否尝试过使用node.outerHeight()而不是获取 scrollHeight 的值?

于 2009-05-23T01:30:42.183 回答
1

尝试使用 jQuery 的 innerHeight() 值,我也相信你需要 'px' 的值。

node.animate({ scrollTop: node.innerHeight() + 'px' }, 500);
于 2009-05-23T01:37:03.763 回答