滚动到div的底部

时间:2012-07-13 08:01:00

标签: javascript jquery html css

使用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/

3 个答案:

答案 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你可以将它设计为普通文本或完全隐藏它。

  1. 将自定义元素放在要滚动到的位置。
  2. 将其ID设置为(例如)scrollelement
  3. window.location.hash设为'scrollelement'。
  4. 对Lee Kowalkowski的信用。