我有一个聊天应用程序,当收到新消息时,它会自动滚动到div的底部。除非您向上滚动以读取日志,否则这样可以正常工作,因为当收到新消息时它会跳回到底部。我需要它只在滚动位置已经在底部并且不确定如何操作时滚动。
var scroll = $("div#log").prop("scrollHeight") - $('div#log').height()
$("div#log").scrollTop(scroll)
欢迎并赞赏任何帮助/建议:)
答案 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/