2011-07-13 146 views
2

Take a look at thisDIV元素不滾動

使用任意隨機用戶名登錄,並開始發送垃圾郵件,直到您到達DIV的底部。注意它如何不滾動?我需要弄清楚爲什麼。

用於滾動JavaScript代碼:

// Note: CHATBOX_ID = "#chat" 
Minte.UI.addChatEntry = function(html) 
{ 
    // Add the chat entry... 
    var entry = '<div>' + this.formatString(html) + '</div>'; 
    $(CHATBOX_ID).html($(CHATBOX_ID).html() + entry); 

    // .. Then scroll down to the bottom 
    var chatContentHeight = 0; 
    var chatHeight = $(CHATBOX_ID).height(); 

    $(CHATBOX_ID + " > div").each(function() { 
     chatContentHeight += $(this).outerHeight(); 
    }); 

    if (chatContentHeight > chatHeight) 
    { 
     var scroll = chatContentHeight - chatHeight; 
     $(CHATBOX_ID).scrollTop(scroll); 
    } 
}; 

* 這裏是我的#chat CSS:*

chat { 
     position: absolute; 
     left: 0%; 
     top: 0%; 
     width: 65%; 
     height: 100%; 
     text-align: left; 
     overflow-y: scroll; 
     overflow-x: hide; 
     word-wrap: break-word; 
    } 

我有一種感覺,它的發生,因爲#聊天是絕對定位的,但我不知道爲什麼。 HTML代碼相當長,所以我沒有在這裏發佈,但在我鏈接的頁面上,只需查看源代碼即可查看它。

我花了太多時間試圖解決這個問題無濟於事。希望你們能幫我解決這個神祕的問題。

+0

一些龐大的數字我檢查哪些被你給的鏈接。它的滾動。 –

+0

不,它不是...... – Ryan

回答

2

你的#chat元素的.scrollHeight屬性是你想要的。

$(CHATBOX_ID).scrollTop($(CHATBOX_ID)[0].scrollHeight) 
+0

謝謝!這工作完美! – Ryan

0

試試這個:

$(CHATBOX_ID).scrollTop($(CHATBOX_ID).height())
+0

'.height()'給你元素的可見高度 - 不是可滾動的高度。 – digitalbath

+0

是的,但它應該將其滾動到底部。您不需要計算滾動所需的確切數量 – locrizak

0

你不應該走的是兩個高度之間的差異。只需滾動到較大元素的高度即可。

0

,或者您可以撥打喜歡

$("#chat").scrollTop(1e5)