ScrollHeight不使用JQuery在IE8中更新

时间:2009-05-23 00:54:24

标签: javascript jquery html scroll append

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

出于某种原因,当我尝试在IE8中执行此操作时,它无法正常工作。取消注释“警报”行显示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>

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

尝试使用jQuery的innerHeight()值,同时我也需要'px'和值。

node.animate({ scrollTop: node.innerHeight() + 'px' }, 500);

答案 2 :(得分:1)

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