使用jQuery将div滚动到 bottom 时出现问题。
股利
HTML:
<div id="chatbox"></div>
CSS:
#chatbox {
width:300px;
height:400px;
background:grey;
overflow-x:hidden;
overflow-y:auto;
border-radius: 10px;
background: #045671;
}
当我使用onclick时 - &gt; $(“#chatbox”)。scrollTop(9999)滚动到底部,再次点击后问题出现滚动+ 20px向上。
示例:http://46.238.10.232:10001/chat/
答案 0 :(得分:2)
如果你过度设定scrollTop
,就会发生魔法(或不会,这取决于你的期望)。将scrollTop
设置为9999会将scrollTop
设置为0到9999之间的任意数字,具体取决于必要性。您还可以阅读 scrollTop
,因此将其设置为x
并不意味着它将保持x
,它将是实际位置,因此它仍然是如果你有兴趣查询有史以来的价值,那就有意义了。
如果元素的内容发生变化,则必须再次设置scrollTop
。通常到scrollHeight
总是足够的(是的,你可以尝试完全准确地计算scrollTop
,但为什么要这么麻烦?让浏览器进行计算,然后重新开始工作)。
所以我想,当你再次点击'(无论是什么)时,你就会在聊天室中添加更多内容。是?然后你必须再次设置scrollTop
, !
如果您 每次都设置scrollTop
,那么您可能太早了。您应该在修改元素的内容后执行此操作,而不是仅仅响应onclick
事件。
答案 1 :(得分:0)
$(document).scrollTop($("#chatbox").position.top+$("#chatbox").height());
答案 2 :(得分:0)
<a>
标记可能会起作用。我知道这很难看,但是用css你可以将它设计为普通文本或完全隐藏它。
scrollelement
。 window.location.hash
设为'scrollelement'。对Lee Kowalkowski的信用。