2012-01-05 61 views
2

我有一个聊天应用程序,当收到新消息时自动滚动到div的底部。这可以正常工作,除非您滚动阅读日志,因为收到新消息时它会跳回到底部。我只需要它滚动滚动位置已经在底部,不知道该怎么做。jquery div自动滚动只在底部div

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

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

+0

请提供您的HTML或的jsfiddle – Dom 2013-03-30 17:30:21

回答

0

你可以用$(文件).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/

+0

它不窗口滚动但div溢出的滚动条:auto – 2012-01-06 03:25:13

+0

@PastorBones在这种情况下,您可以使用它的scrollHeight和scrollTop。看到http://jsfiddle.net/vZetU/ – Sang 2012-01-09 09:04:03

+0

我不能得到这个工作http://jsfiddle.net/NgdNz/1/ – 2012-01-11 03:18:04

0

你必须有滚动事件的处理程序,以检查你是否是在滚动的底部。

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

您可以检查您是否是在被减去scrollHeight属性属性scrollTop的和clientHeight属性滚动的底部,看到我的小提琴:http://jsfiddle.net/XS3kf/1/