ページを一番上までスクロールし、コールバック関数を実行する次のjqueryがあります。
問題は、ページが既に一番上にある場合でも、コールバックを実行する前に「1000」が経過するのを待っていることです。これは望ましくありません。
$('html').animate({scrollTop:0}, 1000, 'swing', function(){
//do something
});
ページを一番上までスクロールし、コールバック関数を実行する次のjqueryがあります。
問題は、ページが既に一番上にある場合でも、コールバックを実行する前に「1000」が経過するのを待っていることです。これは望ましくありません。
$('html').animate({scrollTop:0}, 1000, 'swing', function(){
//do something
});
ドキュメントを上から上にアニメーション化します...面白いですが、それがその方法です。他の選択肢があります。また:
私の.scrollintoview()
jQueryプラグインはそのように動作します。スクロールが完了した後 (最初にスクロールがあった場合)、またはスクロールが不要な場合はすぐに完全なハンドラーを実行する必要がある場合にのみ、スクロールします。
ただし、スクロールする必要がある要素が必要です。実際には、要素をスクロールして表示するのではなく、HTML だけを表示します。もちろん、これは最も安全な方法ではありません。次のいずれかを使用することをお勧めします。
$("html,body")
また
$(window)
より多くのクロスブラウザがサポートされています。したがって、$("html")
それらのすべてで機能するとは限りません。
if( $(window).scrollTop() > 0 ) {
$('html').animate({scrollTop:0}, 1000, 'swing', function(){
//callback after animate
});
} else {
// callback right now (no wait)
}
var html=$('html');
if(html.scrollTop()>0){
html.animate({scrollTop:0}, 1000, 'swing', function(){
//do something
});
}else{
//do something
}