これが私がしたことです。
ご覧のとおり、テキストの上にすばやくホバーすると、おかしな混乱が生じます。2番目の即時ホバー後に「波」効果が台無しにならないようにしたいのですが、その「波」効果が再び実行できるようになります。
事前にthnx!
1414 次
1 に答える
2
running
アニメーションの処理中にtrueでなければならない変数を追加する必要があります。この変数がtrueの場合、新しいアニメーションは開始されません。アニメーションのコールバックは、アニメーションの終了後に呼び出されます。最後の文字かどうかを確認し、最後の文字running
の場合はtrueに設定できます。
$(function() {
$('h1').lettering();
$('h1 span').css('position','relative');
var running = false;
$('h1').hover(function(){
if (running) return;
running = true;
var childs = $(this).children("span");
childs.each(function(i){
$(this).delay(i*50).animate({ top:'-10px' }, 100, function(){
$(this).animate({top: 0}, function() {
if ($(this).is(childs.last())) {
running = false;
}
});
});
});
setTimeout(function() {
running = false;
}, children.count * 150);
}, function(){
$(this).children('span').animate({ top: 0 }, 100);
});
});
未使用の変数があることに注意してくださいi
。i
関数の引数として持っているので、それを宣言するべきではありません。したがって、最初i
のコードは引数の後ろに隠されますi
。
于 2012-05-11T00:34:13.427 に答える