2016-06-23 7 views
1

javascript divの上記機能をチャットボックスの自動スクロールに使用していますが、下にスクロールできません。javascript divの自動スクロール

window.setInterval(function() { 
var elem = document.getElementById('chatlog'); 
elem.scrollTop = elem.scrollHeight; 
}, 10); 

チャットログは私のコードのdivであり、私は上記の関数をスクロールして返信しています。今私は上にスクロールできません。

+0

あなたは何をしようとしていますか?もう少し説明できますか? –

+1

chatlogは私のコードではdivですが、私は上にスクロールして返信することができません。 – Abdul

+2

あなたはフィドルを作ることができますか? – Patrick2607

答えて

2

これは論理的な誤りです。あなたのコードでは、10ミリ秒ごとにスクリプトが下から下にスクロールします。自動スクロールの振る舞いを実装する方法はさまざまです。そのうちの1つは、checkBox(自動スクロール)によって設定されるフラグを使用します。 checkBoxが選択されている場合、スクリプトは下にスクロールし、選択されていないスクリプトは何も行いません。

のような何か:

window.setInterval(function() { 
if (needAutoScroll) { 
    var elem = document.getElementById('chatlog'); 
    elem.scrollTop = elem.scrollHeight; 
} 
}, 10); 
+0

下部にスクロールした場合(以前は手動でチェックを外していなかった場合)、自動的にチェックボックスをオンにし、スクロールアップを開始すると自動的にチェックボックスをオフにすることは賢明かもしれません。これはもっと複雑なロジックなので、もっと説明する必要があります。 –

+0

はい、それは可能です:-)ちょうど質問だった:今私はスクロールすることはできません。だから私は最も単純な決定の一つを提供した。 – Sabik

+0

もちろん。ちょうどあなたの答えによってインスピレーションを得た:)乾杯! –

0

私の推測では、それはdivの毎秒の一番下までスクロールしているので、あなたが上にスクロールすることができません、です。スクロールアップするにはsetInterval機能をクリアする必要があります。

これを試すことができますchatlog div。スクロールダウンに再び

<div id="chatlog" onscroll="myStopFunction()">

function myStopFunction() { 

if document.body.scrollTop <= 0 { 
console.log("scrolling down") 
} else { 
console.log("scrolling up"); 
clearInterval(myVar); 
} 

} 

あなたはsetInterval機能を起動することができます。