2012-01-05 63 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/