Jquery div仅在div的底部自动滚动

时间:2012-01-05 09:42:11

标签: jquery scroll

我有一个聊天应用程序,当收到新消息时,它会自动滚动到div的底部。除非您向上滚动以读取日志,否则这样可以正常工作,因为当收到新消息时它会跳回到底部。我需要它只在滚动位置已经在底部并且不确定如何操作时滚动。

var scroll = $("div#log").prop("scrollHeight") - $('div#log').height()
$("div#log").scrollTop(scroll)

欢迎并赞赏任何帮助/建议:)

2 个答案:

答案 0 :(得分:0)

您可以使用$(document).scrollTop()和window.innerHeight。

function appendMessage(message) {
    if($(document).scrollTop() + window.innerHeight == $('body').height())
        /* append message and scroll */
    else
        /* append message without scroll */
});

看我的小提琴:http://jsfiddle.net/sxR9j/

答案 1 :(得分:0)

您必须在滚动事件上设置一个处理程序,以检查您是否位于滚动的底部。

$("#mydiv").on('scroll', function() {
    ...
}

您可以通过从scrollHeight属性中减去scrollTop和clientHeight属性来检查您是否位于滚动的底部,请参阅我的小提琴:http://jsfiddle.net/XS3kf/1/