Javascript 向下滚动动画js

Javascript 向下滚动动画js,javascript,Javascript,我在JS中建立了一种聊天,然后我希望当我收到新消息时,聊天会自动向下滚动(带有动画…)。一切都运行得很好,但在动画停止后,用户无法自己滚动;聊天自动滚动到最后 这就是代码: <!-- language:lang-js --> var height = 1; window.setInterval(function() { var elem = document.getElementById('chat'); elem.scrollTop = height; i

我在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);

var高度=1;
setInterval(函数(){
var elem=document.getElementById('chat');
elem.scrollTop=高度;
如果(元素高度<高度){
clearInterval(本);
}
高度+=2;
}, 50);
函数需要一个数字。使用它应该可以使它正常工作。您还存在许多语法错误

var intervalReference = window.setInterval(function() {
    var elem = document.getElementById('chat');
    elem.scrollTop = height;
    if (elem.scrollHeight < height) {
        clearInterval(intervalReference);
    }
    height += 2;
}, 50);
var intervalReference=window.setInterval(函数(){
var elem=document.getElementById('chat');
elem.scrollTop=高度;
如果(元素高度<高度){
clearInterval(间隔参考);
}
高度+=2;
}, 50);

您应该创建一个var来保持间隔,如下所示:

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;
}
var高度=1;
var interval=window.setInterval(动画,50);
函数animate(){
var elem=document.getElementById('chat');
elem.scrollTop=高度;
如果(元素高度<高度){
间隔时间;
}
高度+=2;
}

这应该可以正常工作

setInterval(animate(),50)-->setInterval(animate,50)。我以前从未使用过这个网站,所以它不起作用(我试图修复它…@asafg8您仍然有
scrollHeight
错误,请注意大写字母
H
,在这里它起作用了,尽管,可能是您想要的。