我有一个脚本执行任务,就像常规聊天一样。每当我加载新消息时,我都会填写这样的div:
....
<div class="conversation">
<span class="sender">Sender: </span><span>Message sent by sender..</span>
</div>
....
然后,使用jQuery我做这样的事情:
var lastOne = $("div.conversation:last", itemBox).offset();
itemBox.scrollTop(lastOne.top);
当我有一些(~40条消息)它可以正常工作,但是当列表变得太大时,它开始计算错误的偏移量。这种情况特别适用于大型消息,占用超过3行。我没有在聊天框中使用任何浮动(所有div.conversation
的父级),所以我真的很震惊......
提前致谢
答案 0 :(得分:3)
答案 1 :(得分:0)
您可以尝试使用ViewPort吗?
答案 2 :(得分:0)
好,
我不是很喜欢做这整个“回答我的问题”的事情,但我不喜欢留下一个悬而未决的问题。 position函数确实可以在jQuery上运行一些主流浏览器,但是我还没弄清楚为什么......它会死于FFx 4,我必须计算框中所有div的高度,就像这样: / p>
var itemBox = $("#conversation5");
var loader = $("div.conversation", itemBox);
var sum = 0;
for (var i = 0; i < loader.length; i++)
sum += $(loader[i]).innerHeight();
itemBox.scrollTop(sum);
它可以在所有浏览器上完美运行,而不是最漂亮的解决方案,但仍然有效。