2012-02-14 14 views
1

設定変数にスクロールできないようですが、正しい構文を使用していますか?scrollTopがスクロールしない

var offset = $(".box", this).offset().top; 
$(window).animate({scrollTop:offset}, 500); 

答えて

1

あなたはwindowをスクロールすることはできません。ウィンドウスコーリングをアニメートすることはできません(カトーに感謝します)。これを試してみてください:

var offset = $(".box", this).offset().top; 
$("html,body").animate({scrollTop:offset}, 500); 
+0

$(ウィンドウ).scrollTop()[正常に動作](http://jsfiddle.net/katowulf/w43T6/)。ウィンドウのスクロールをアニメートできないと言ったのですか? – Kato

+0

@Kato:私は訂正しました。はい、私はウィンドウのスクロールをアニメートできないと言っていました。一定。 ;) –

+0

私はアニメーションのアプローチを試したことがないので、お勧めします。私はhtml、ボディソリューションが好きです(実際のブラウザで2回アニメーション化していますか?ダブルコールを避けるためにブラウザを盗聴する価値がありますか?) – Kato

1

次はIEと他のブラウザの両方で動作します。

0

offset()。topはドキュメントに対する相対的な距離です。したがって、ドキュメントがすべてスクロールされている場合、アニメーションは正確ではありません。

$( "body")。アニメーション({scrollTop:offset + $( "body")scrollTop()}、500);

+0

を参照してください。いいえ、jQuery offset()は、ドキュメント、スクロール位置に関係なく。 –

+0

あなたの場合、それは同じことです。オフセット+スクロールトップ===位置。しかし、ポジションはオフコースクリーナーです:-) – terjeto

1

私は最終的に位置を使用していた()ではなく

var offset = item.position().top; 
$("html, body").animate({scrollTop:offset}, 500); 

をオフセットとドキュメントを読むことによって、クロスブラウザ

のために$(「HTML、ボディー」)を使用することをお勧めしますコメントによって提案されました
関連する問題