这个其实挺复杂的。
http://jsfiddle.net/wvezk/180/
您需要利用回调来获得所需的操作顺序。我还利用该data
属性来跟踪何时应该触发/不触发事件。我还必须更改您的 CSS 并将其animate
从show
. Show 通过将元素包装在容器中来工作。这导致了爆裂效应。
$('#slider').mouseover(function() {
//if we are animating then punt
if ($(this).data('animating') == true) {
return;
}
$(this).data('animating', true);
//animate the move
$(this).animate({
left: '-25px'
}, 500, function() {
//in callback return to original state
setTimeout(function() {
animationCallback();
}, 1000);
});
});
function animationCallback() {
//move back
$('#slider').animate({
left: '0px'
}, 500, function() {
//in callback trun off animation
$(this).data('animating', false);
});
}