我试图将一些文本(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>
答案 0 :(得分:1)
您是否尝试过使用node.outerHeight()
而不是获取scrollHeight的值?
答案 1 :(得分:1)
尝试使用jQuery的innerHeight()值,同时我也需要'px'和值。
node.animate({ scrollTop: node.innerHeight() + 'px' }, 500);
答案 2 :(得分:1)
我也遇到了这个问题 - 这对我来说似乎是IE8中的一个缺陷(兼容模式没有表现出相同的行为)。在我的情况下,我只是读取一次值以“填充”它并忽略结果,然后后续读取是正确的。不理想,但似乎工作正常。