Estoy tratando de hacer que div
se deslice hacia afuera y hacia adentro al pasar el mouse, es decir, el mouse entre y salga, respectivamente. Sin embargo, cuando entré y salí varias veces, el div
siguió deslizándose hacia adelante y hacia atrás básicamente hasta la cantidad de veces que hice el vuelo estacionario. Por favor, consulte este jsFiddle example.jQuery Animation: dejar de animar una vez fuera del mouse
Como probablemente haya adivinado, espero hacer que el div
se detenga (es decir, se deslice hacia adentro) una vez que el mouse esté fuera del elemento independientemente de las veces que lo he desplazado. Creo que falta algo en mi comprensión sobre la animación jQuery.
$("#state-slider").hover(function() {
$(this).animate({
left: '0'
}, 500);
}, function() {
$(this).animate({ left: "-270" }, 500);
});
Gracias.
Esto funciona perfectamente. ¡Gracias! ¿Sabes por qué también necesitamos '.stop()' al ingresar el mouse? Sé que debemos tenerlo porque de lo contrario habrá un "salto" como en la respuesta de @ 3nigma; sin embargo, no estoy seguro del razonamiento detrás de esto. – moey
@ Siku-Siku.Com: La razón para usar '.stop()' tanto en el ingreso del mouse como en el mouse-leave se hace evidente si pasa el mouse sobre el div, lo aleja y luego vuelve rápidamente. Lo que el usuario espera de eso es el div para "dar la vuelta", es decir, * detener lo que estaba haciendo y hacer lo nuevo en su lugar *. Eso es precisamente lo que '.stop()' hace. –
+1 para la aclaración! – moey