2011-07-13 42 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)