2012-07-13 307 views
0

我使用jQuery滾動div到底部時出現問題。滾動到div的底部

事業部

HTML:

<div id="chatbox"></div> 

CSS:

#chatbox { 
    width:300px; 
    height:400px; 
    background:grey; 
    overflow-x:hidden; 
    overflow-y:auto; 
    border-radius: 10px; 
    background: #045671; 
} 

當我使用的onclick - > $( 「#客艙」)scrollTop的(9999 )滾動到底,問題出現後再次點擊滾動去+ 20px u頁。

例:http://46.238.10.232:10001/chat/

+2

將您的代碼添加到http://www.jsfiddle.net – SVS 2012-07-13 08:02:41

+0

再次點擊!?!?闡述。 – 2012-07-13 08:04:27

+0

@LeeKowalkowski提交後按鈕againe – 2012-07-13 08:12:06

回答

0
$(document).scrollTop($("#chatbox").position.top+$("#chatbox").height()); 
2

如果通過設置scrollTop,奇蹟發生(或者沒有,這取決於你的期望)。將scrollTop設置爲9999將根據需要將scrollTop設置爲介於0和9999之間的任意數字。你也可以讀取scrollTop,所以設置爲x並不意味着它會保留x,這將是實際的位置,所以如果你有興趣查詢有價值的東西,它仍然是有意義的。

如果元素內容發生變化,則必須再次設置scrollTop。通常到scrollHeight將永遠是足夠的(是的,你可以嘗試完全準確地計算scrollTop,但爲什麼打擾?讓瀏覽器做計算,並重新開始工作)。

所以我想,當你'再次點擊'(不管那是什麼)時,你會在聊天室中添加更多的內容。是?那麼你必須再次設置scrollTop,


如果你每次設置scrollTop,你可能做的太早。您應該在修改元素的內容後執行此操作,而不僅僅是響應onclick事件。

0

<a>標籤可能會訣竅。我知道這很醜陋,但使用css你可以將其設置爲普通文本或完全隱藏它。

  1. 在您要滾動到的位置放置一個自定義元素。
  2. 將其設置爲(例如)scrollelement
  3. window.location.hash設置爲'scrollelement'。

學分給Lee Kowalkowski。

+0

哇!您不需要使用'__element__'來執行此操作很長一段時間(因爲您可以使用id屬性而不是name屬性)。任何元素的ID都可以通過URI片段標識符('#')來引用。您也可以瀏覽它,而不生成點擊事件或其他''元素,只是'window.location.hash ='element-id''。 – 2012-07-13 09:06:38

+0

使用URI滾動會干擾用戶的瀏覽歷史記錄,因此您可能會以這種方式給返回按鈕帶來不便。 – 2012-07-13 09:08:26