2012-11-22 158 views
0

我在JS中建立了一種聊天方式,然後當我收到新消息時聊天會自動向下滾動(使用動畫...)。一切都很好,但動畫停止後,用戶無法自己滾動;聊天自動滾動到最後。向下滾動動畫js

所以這是代碼:

<!-- language:lang-js --> 

var height = 1; 
window.setInterval(function() { 
    var elem = document.getElementById('chat'); 
    elem.scrollTop = height; 
    if (elem.scrollheight < height) { 
     clearInterval(this); 
    } 
    height += 2; 
}, 50); 

回答

1

clearInterval函數需要數字。使用它應該能夠正常工作。你也有很多語法錯誤。

var intervalReference = window.setInterval(function() { 
    var elem = document.getElementById('chat'); 
    elem.scrollTop = height; 
    if (elem.scrollHeight < height) { 
     clearInterval(intervalReference); 
    } 
    height += 2; 
}, 50); 
+0

它仍然不工作,我應該把這裏的完整代碼? – asafg8

+1

@ asafg8更好的是,製作一個[jsfiddle](http://jsfiddle.net/)來顯示問題。 – Andrew

+0

http://jsfiddle.net/yg5zQ/2/我以前從未與這個網站合作,所以它不工作(我試圖修復它...) – asafg8

0

你應該做一個變種持有這樣的時間間隔:

var height = 1; 
var interval = window.setInterval(animate, 50); 

function animate() { 
    var elem = document.getElementById('chat'); 
    elem.scrollTop = height; 
    if (elem.scrollHeight < height) { 
     clearInterval(interval); 
    } 
    height += 2; 
} 

這應該做工精細

+0

setInterval(animate(),50) - > setInterval(animate,50)。 –

+0

對不起,我的錯^^ – Ace

+0

不客氣^^ – Ace