3

ページを一番上までスクロールし、コールバック関数を実行する次のjqueryがあります。

問題は、ページが既に一番上にある場合でも、コールバックを実行する前に「1000」が経過するのを待っていることです。これは望ましくありません。

$('html').animate({scrollTop:0}, 1000, 'swing', function(){

//do something

});
4

3 に答える 3

4

待たない

ドキュメントを上から上にアニメーション化します...面白いですが、それがその方法です。他の選択肢があります。また:

  • スクロールする前にページの位置を確認してください(コードを提供することで他の人が提案したように)または
  • 動作が異なる jQuery プラグインを使用する

私の.scrollintoview()jQueryプラグインはそのように動作します。スクロールが完了した後 (最初にスクロールがあった場合)、またはスクロールが不要な場合はすぐに完全なハンドラーを実行する必要がある場合にのみ、スクロールします。

ただし、スクロールする必要がある要素が必要です。実際には、要素をスクロールして表示するのではなく、HTML だけを表示します。もちろん、これは最も安全な方法ではありません。次のいずれかを使用することをお勧めします。

$("html,body")

また

$(window)

より多くのクロスブラウザがサポートされています。したがって、$("html")それらのすべてで機能するとは限りません。

于 2011-06-01T19:48:26.527 に答える
2
if( $(window).scrollTop() > 0 ) {
    $('html').animate({scrollTop:0}, 1000, 'swing', function(){

        //callback after animate

    });
} else {
    // callback right now (no wait)
}
于 2011-06-01T19:51:01.060 に答える
1
var html=$('html');
if(html.scrollTop()>0){
  html.animate({scrollTop:0}, 1000, 'swing', function(){
  //do something
});
}else{
  //do something
}
于 2011-06-01T19:50:24.947 に答える