ウィンドウがスクロールされたときに 50% のサイズにアニメーションするロゴ画像を作成しようとしています。私の問題は、ウィンドウのスクロール中にアニメーションが数回実行されることです。ウィンドウが 62px を超えてスクロールされている間に 1 回アニメーション化し、ウィンドウが 62px を超えてスクロールされた場合にもう一度アニメーション化するにはどうすればよいですか? クラスを追加して削除しようとしましたが、うまくいきませんでした。私はSOを検索しましたが、重複または類似の質問を見つけることができませんでした(あるとしたら悪いです!)。
JSFiddle はこちら: http://jsfiddle.net/jtheman/kEtPd/ (私の実際のプロジェクトをシミュレートするために、jsfiddle に追加の CSS を追加しました)
関連する HTML:
<body>
<header>
<div id="logo">
<img src="/img/logo.png">
</div>
...
CSS:
header { position:relative; }
header #logo { position:absolute; top: 62px; left: 0; width: 365px; height: 53px; }
header #logo img { position:absolute; bottom: 0; left: 0; width: 365px; height: 53px; }
そして私のjQuery:
$(window).scroll( function() {
var scrollpos = $(window).scrollTop();
if (scrollpos > 62)
{
$('#logo img').stop().animate({ 'width': '182px', 'height': '26px'},1000);
}
else
{
$('#logo img').stop().animate({ 'width': '365px', 'height': '53px'},200);
}
});