1

私はグーグルで検索して、この問題に対するいくつかの解決策を見つけましたが、私の状況ではどれもうまくいかないようです。スクロールする隠し入力を試しましたが、それは一番下にとどまります

document.getElementById('scrollToMe').scrollIntoView();

私が試してみました

$("#postbox").scrollTop($("#postbox")[0].scrollHeight);

他にもいくつかあります。これが私の状況です

私はチャット ルーム ( http://novaplasm.topiacloud.com/Chat ) を持っています。何かを入力すると、Knockout を使用して div "postbox" に入力されます。新しいコンテンツを入力するたびに、それが追加されます。自分でスクロールしなくても、いつでも最新のメッセージが見られるようにしたいです。私は私の人生のためにこれを行うことができないようです。ありがとうございます!

4

1 に答える 1

1

まず、ポストボックスとチャット メッセージ div への参照を取得します

   var pbox = $('#postbox');

   var chat_div = $('<div></div>').attr('class', 'chat_msg').text(msg);

msg はチャット メッセージです。

次に、このような「アニメーション」メソッドを使用して下にスクロールする必要があります

  chat_div.appendTo(pbox);

   var height = pbox.scrollTop() + pbox.height() +  $('#postbox').filter('.chat_msg:last').scrollTop();

   pbox.animate({'scrollTop' : height}, 1000);

ここでは、アニメーションが 1 秒以上発生しています。

jQuery メソッドの詳細については、jQuery のドキュメントを参照してください。

ライブ フィドルの例

于 2013-08-05T18:18:06.607 に答える