我的.shake()
效果是为我提供跨多个浏览器的业务。例如,在 Chrome 中,如果我快速悬停,我会遇到队列堆积问题。如果我尝试.stop()
在我的摇晃效果之前实现,元素将开始向下摇晃,然后在动画未完成且元素完全不合适的情况下挂在那里。在 IE 中,动画不止一次触发(即使我没有快速进出悬停)。烦人的是,如果我将鼠标放在链接上,它会一遍又一遍地触发动画。
我尝试过使用 .stop() 及其真/假参数的不同变体。我还尝试在动画的每个步骤上使用 queue:false 。我什至尝试将 .shake 效果与 times:0 放在函数的 mouseleave 部分(结果很有趣)。不知道接下来要尝试什么。
我的代码在下面,但这里有一个链接到有抖动问题的菜单。
$(document).ready(function () {
$('.shake').hover(function () {
$(this).animate({
'color': '#fc0'
}, 150).effect('shake', {
times: 1,
distance: 12,
direction: 'down'
}, 50);
}, function () {
$(this).animate({
'color': '#8a600f'
}, 500);
});