0

私は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);
4

2 に答える 2

1

clearInterval関数は数値を期待します。これを使用すると、正しく機能するはずです。また、多くの構文エラーがあります。

var intervalReference = window.setInterval(function() {
    var elem = document.getElementById('chat');
    elem.scrollTop = height;
    if (elem.scrollHeight < height) {
        clearInterval(intervalReference);
    }
    height += 2;
}, 50);
于 2012-11-22T20:12:05.633 に答える
0

次のように間隔を保持する 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;
}

これはうまくいくはずです

于 2012-11-22T20:14:33.880 に答える