0

だから私はこのようなdivにdivを持っています

<div id="container"> 
<div id="bottom"> </div>
</div> 

コンテナは絶対配置されます。

.before() を使用して要素を追加しています

$("#bottom").before('<p>Some Paragraph</p>');

次に、コンテナの一番下までスクロールしようとしています

$("#container").scrollTop($('#bottom').position().top);

しばらくは機能しますが、その後機能しなくなります。

「$('#bottom').position().top」を出力すると、ある時点までインクリメントしてから停止することがわかります。

私がこのようにしている理由は、スクロールする前にアニメーションもあり、アニメーションで正常に動作するためですが、ある時点まで言ったようです。

私が思いついた唯一の一時的な解決策はこれでした(基本的には大きな数を入れます)。

 $("#container").scrollTop(10000000);
4

3 に答える 3

0

offset()の代わりに使用position():

$("#container").scrollTop($('#bottom').offset().top);

参照: http://api.jquery.com/offset/

于 2013-03-03T19:23:36.323 に答える
0

私の場合、ページに要素を追加した直後に、ブラウザーが要素の新しい高さのレンダリングを完了するまでに少し時間がかかることに気付きました。

解決策は次のとおりです。

setTimeout(function(){
    $("#container").scrollTop($('#bottom').position().top);
}, 50);

PS .: 50 は特に恣意的な数値です。私の場合は 0 だけで機能します。

于 2015-04-03T19:58:04.047 に答える
0

スクロール用のプラグインを使用するのはどうですか?

Jquery ScrollTo はうまく機能します。

$(...).scrollTo( $('#container'), timeInMs );
于 2013-03-03T19:25:26.843 に答える