0

私は JQuery を実行しており、scrollTop アニメーションを使用してウィンドウを上部近く (約 240 ピクセル、多少可変ですが) に戻したいと考えています。ページ。

私は使用しています:

$("html, body").animate({ scrollTop: someNumericalVariable });

私が遭遇する問題は、このコードが遅延やタイムアウトなしで実行されると、ウィンドウが非常に小さなスクロール アニメーションを実行し、目的の場所に到達できないことです。任意の遅延 (少なくとも 1 秒から数秒) を追加すると、ウィンドウが目的の場所に配置される場合と配置されない場合がありますが、アニメーションはほとんどアニメーションではありません (2 つの個別の scrollTop 呼び出しのように動作します - すぐに上にジャンプし、少し待ってから、もう一度上にジャンプして正しい場所に移動します)。

コードを個別に (大量の HTML レンダリングの途中でコールバックとしてではなく) 実行すると、アニメーションは正しく動作するようです。

何か案は?前もって感謝します。

4

1 に答える 1

0

やりたいことは、ajax 呼び出しが完了し、データを処理した後に scrollTop() 位置をアニメーション化することです。例えば:

$.ajax({
  url: "data.html",
  success: function(html) {
    $('#content').append(html); // process data first

    var someNumericalVariable = randomCalculation(); // do whatever calculation you need to do to figure out scrolltop
    $("html, body").animate({ scrollTop: someNumericalVariable }); // animate scrolltop
  }
});

何かがうまくいかない場合は、コードを投稿するか、jsFiddle を作成してください。何が起こっているのかを調べます。

于 2011-10-19T09:47:56.553 に答える