2011-07-31 89 views
0

我想提出一個聊天式界面,在這裏可以看到(現在在Chrome中最好看):如何有一個div滾動到底部自動

http://qas.im/web/sms.php

的臨時用戶名:密碼temp_guest:密碼

我的問題是,當你點擊聊天之一,它不自動滾動至底部時,我使用此代碼:

$(".messages").attr({ scrollTop: $(".messages").attr("scrollHeight") }); 

什麼可能是錯的?這些消息div有一個CSS:

.messages { 
    height:400px; 
    overflow: auto; 
} 

誰的人都在猜測:頁面心不是HTML驗證,但是我將盡快清除它。大多數頁面是自動生成的,這使得代碼看起來很具挑戰性; P

回答

1

我發現了兩個問題。

第一個是你試圖將所有.message DIVs設置爲第一個DIV的高度,所以如果第一個DIV被隱藏,它將不會工作。

第二個是jQuery的attr函數只用於節點屬性。

此方法效果更好,並正確滾動所有的div:

$(".messages").each(function(idx, node) { node.scrollTop = node.scrollHeight; }); 

或者,您也可以使用這個選擇提高性能:

$(".messages:visible").each(function(idx, node) { node.scrollTop = node.scrollHeight; }); 

上看到消息的節點其中一期工程。

+0

是的,我也剛剛意識到並固定了我的代碼,以便當每個人都是可見的,我會用在工作實例給出的代碼,FishBasketGordo給了我們自動將其關閉。 – Qasim