这就是我所做的。
如您所见,当您快速将鼠标悬停在文本上时,会出现非常混乱的情况。我希望“波浪”效果不会在第二次立即悬停后搞砸,只有在“波浪”效果可以再次完成之后。
提前谢谢!
问问题
1414 次
1 回答
2
您应该添加running
在动画处理时必须为真的变量。如果这个变量为真,我们将不会开始新的动画。动画结束后会调用动画的回调。我们可以检查它是否是最后一个字母,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 回答