2016-05-05 3 views
0

#messagearea divに表示されている新しいメッセージがxミリ秒ごとに自動的に更新されるチャットルームを作成して、下にスクロールします。これは私がこれを行うために使用している擬似コードです。メッセージdiv全体が交換されたときのチャットルームのスクロールの問題

function fetch_messages{ 
    loadmsgs(); 
    $("#messagearea").animate({ scrollTop: 0}, 300); 
} 

新しいメッセージが読み込まれるたびに、メッセージは一番下にスクロールします。

しかし、これには問題があります。ページ上のメッセージを取得して更新するたびに、ユーザーがスクロールして下にスクロールし続けるので、ユーザーは上にスクロールできません。ユーザーがスクロールアップしようとすると、JavaScriptは1000ミリ秒ごとにスクロールバーを下に押し下げます。

新しいメッセージが表示されたら(ユーザーがすでに一番下までスクロールされた場合)だから私はしたい...

  • #messagearea
  • 、下へスクロールし#messageareaを1000ミリ秒ごと
  • を更新#messageareaが更新されるたびに、Webブラウザが下にスクロールしてもスクロールアップが許可されます

全体の#messagearea、悪い考え、または私は.appendする必要がありますか?

+0

を追加し、スクロールバーを移動しないでください。 – Derek

+0

facebookのように、メッセンジャーボックスの上部に、新しいメッセージが存在することを知らせる小さなオーバーレイや、それらの行に沿ったものを配置します。 – Derek

+0

@OliverQueen私はそれを試みましたが、動作させることができませんでした。 https://gist.github.com/desbest/9a8633b54b19fcfaebb93d78714292f2 – desbest

答えて

0

アイデア、私はこのような状況が
ある避けるために使用ユーチューブ 実際https://www.youtube.com/watch?v=FIuyZn5fNs4&feature=youtu.be

何で

その "新しいメッセージのサウンドを果たしました"あなたは達成しようとしているほとんどのユーザーのために非常に不快になります becaus上記のいくつかのメッセージを読んでいる間、自動的に新しい更新の下にスクロールします。

簡単な解決策は

は、新たな上、ユーザーに通知するために、ユーザーはシングルクリックと(再生音のような)いくつかのメカニズムに一番下までスクロールすることができた上にボタンを追加しますメッセージ。


私はappendを使用し、ちょうどスクロールバーが下にない場合は、常に考慮に入れることができ、最新の見えないメッセージ

+0

はい、新しいメッセージが表示されるたびにユーザーがスクロールダウンする必要があります。これは悪いUX(ユーザビリティ)です。 – desbest

+0

私が言及した問題は悪いUX(使いやすさ)です。 – Sachin

+0

両方の問題を回避するには、ユーザーがワンクリックで下にスクロールして新しいメッセージをユーザーに通知できるボタントップを追加します。 – Sachin

関連する問題