アニメーションの実行は1回のアニメーション処理が終わってから次のアニメーションが実行されます。例えば、クリックイベントを使ってコンテンツをアニメーション付きで表示・非表示の処理をした場合、アニメーションをしている途中で表示・非表示の切り替えを何度も繰り返してクリックすると、クリックした回数分のアニメーションが終わるまで待つ必要があります。このような不要なイベント発生を防ぐ方法を紹介します。
:animatedセレクターでイベントを制御
「:animated」というセレクターを使うことによって、無駄なアニメーション処理を防ぐことができます。
$(function() {
$("#show").click(function() {
$("img:not(:animated)").show("slow");
});
$("#hide").click(function() {
$("img:not(:animated)").hide("slow");
});
});
このようにすることで、img要素がアニメーションしていない場合だけshow()とhide()が実行されるようになり、アニメーション中は実行されません。「not()」という否定疑似クラスを使ってアニメーション中という条件を除外しています。
アニメーションの動作に何か不具合があった場合には、:animatedセレクターを使ってみるとクリアできるかもしれませんので、試してみてください。
device-widthについて
CSSのfilterプロパティを使って画像効果をつける
iPhoneで送信ボタンの角丸をなくす方法
【CSS】文字を指定した行数に制限する方法
Webサイトを作る際、HTML5やCSS3を使用するべきか?
【WordPress】古い記事にメッセージを表示させる