DIV元素不滚动

时间:2011-07-13 19:16:38

标签: javascript html css scroll

Take a look at this

使用任意随机用户名登录并开始发送垃圾邮件,直到您到达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;
    }

我感觉它正在发生,因为#chat绝对定位,但我不知道为什么。 HTML代码相当长,所以我没有在这里发布,但在我链接的页面上,你只需使用View Source查看它。

我花了太多时间试图解决这个问题无济于事。希望你们能帮我解决这个神秘的问题。

5 个答案:

答案 0 :(得分:2)

.scrollHeight元素上的#chat属性就是您想要的。

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

答案 1 :(得分:0)

试试这个:

$(CHATBOX_ID).scrollTop($(CHATBOX_ID).height())

答案 2 :(得分:0)

你不应该在两个高度之间取得差异。只需滚动到较大元素的高度即可。

答案 3 :(得分:0)

在我的情况下,chatContentHeight最终为462,而chatHeight为480.因此,最后一个if语句为false。

使用jQuery有一种更简单的方法。粘贴此处有点长,所以这里是链接:http://kisdigital.wordpress.com/2010/03/10/using-jquery-to-scroll-to-the-bottom-of-a-div-revised/

答案 4 :(得分:0)

或者你可以拨打一些像

这样的巨大号码
$("#chat").scrollTop(1e5)