jQueryのanimateを立て続けに実行すると、
何度も無駄にリピートされることがありますよね。
そんなときは.not(":animated")を指定してあげましょう!
これで、animate実行中の要素が対象外になります。
$(function(){
$(".sample").hover(function(){
$(this).not(":animated").animate({opacity:"0.5"},500);
},function(){
$(this).animate({opacity:"1"},500);
});
});
たとえば、こんな感じです。
これでsampleクラスの要素をホバーしたら、500ミリ秒かけて透過率が50%になります。
マウスが要素から外れれば、500ミリ秒かけて透過率が元に戻ります。
500ミリ秒以内でホバーを繰り返せば、本来は繰り返した分だけ透過率変化も繰り返します。
でも、.not(":animated")を指定していれば、animate実行中はこの命令が行われません。
(・∀・)
何度も無駄にリピートされることがありますよね。
そんなときは.not(":animated")を指定してあげましょう!
これで、animate実行中の要素が対象外になります。
$(function(){
$(".sample").hover(function(){
$(this).not(":animated").animate({opacity:"0.5"},500);
},function(){
$(this).animate({opacity:"1"},500);
});
});
たとえば、こんな感じです。
これでsampleクラスの要素をホバーしたら、500ミリ秒かけて透過率が50%になります。
マウスが要素から外れれば、500ミリ秒かけて透過率が元に戻ります。
500ミリ秒以内でホバーを繰り返せば、本来は繰り返した分だけ透過率変化も繰り返します。
でも、.not(":animated")を指定していれば、animate実行中はこの命令が行われません。
(・∀・)