2012-01-05 9 views
2

新しいメッセージを受け取ったときに自動的にdivの下にスクロールするチャットアプリケーションがあります。これは、新しいメッセージが受信されたときに、ログを読むためにスクロールしない限り、正常に機能します。スクロール位置が既に下にあり、それを行う方法がわからない場合にのみスクロールする必要があります。divの下にあるときにのみJquery divの自動スクロール

var scroll = $("div#log").prop("scrollHeight") - $('div#log').height() 
$("div#log").scrollTop(scroll) 

すべてのヘルプ/提案は歓迎していただければ幸いです:)

+0

あなたのhtmlやjsfiddle – Dom

答えて

0

あなたは$(文書).scrollTop()とwindow.innerHeightでそれを行うことができます。あなたは、スクロールの一番下にあるかどうかをチェックするには、スクロールイベントのハンドラを持っている必要がhttp://jsfiddle.net/sxR9j/

+0

を提供してくださいそうではありませんウィンドウのスクロールはdivオーバーフローのスクロールバー:自動 –

+0

@PastorBonesその場合は、そのscrollHeightとscrollTopを使用することができます。 http://jsfiddle.net/vZetU/を参照してください。 – Sang

+0

私はこれを動作させることができませんhttp://jsfiddle.net/NgdNz/1/ –

0

function appendMessage(message) { 
    if($(document).scrollTop() + window.innerHeight == $('body').height()) 
     /* append message and scroll */ 
    else 
     /* append message without scroll */ 
}); 

は私のバイオリンを参照してください。

$("#mydiv").on('scroll', function() { 
    ... 
} 

あなたは、scrollHeightプロパティからscrollTopスプライトとclientHeightプロパティを減算することによってあなたは、スクロールの一番下にあるかどうかをチェックし、私のバイオリンを見ることができます:http://jsfiddle.net/XS3kf/1/

関連する問題