Sto provando a far scivolare fuori uno div
e, al passaggio del mouse, il mouse entra e esce, rispettivamente. Tuttavia, quando mi sono librato più volte dentro e fuori, lo div
continuava a scorrere avanti e indietro praticamente fino al numero di volte in cui facevo il hover. Si prega di fare riferimento a questo jsFiddle example.jQuery Animazione: interrompe l'animazione dopo il mouse
Come probabilmente avete indovinato, spero di far cessare div
(ossia fatto scorrere in) una volta che il mouse è esterno dell'elemento indipendentemente quante volte ho il mouse su di esso. Penso che manchi qualcosa nella mia comprensione dell'animazione di jQuery.
$("#state-slider").hover(function() {
$(this).animate({
left: '0'
}, 500);
}, function() {
$(this).animate({ left: "-270" }, 500);
});
Grazie.
Questo funziona perfettamente. Grazie! Sai perché abbiamo bisogno anche di '.stop()' al momento del mouse? So che dobbiamo averlo perché altrimenti ci sarà un "salto" come nella risposta di @ 3nigma; tuttavia, non sono sicuro del ragionamento che ci sta dietro. – moey
@ Siku-Siku.Com: Il motivo dell'uso di '.stop()' su mouse-enter e mouse-leave diventa evidente se si passa il mouse sopra il div, lo si sposta indietro e quindi si torna rapidamente indietro. Ciò che l'utente si aspetta da questo è il div a "girarsi", cioè interrompere quello che stava facendo e invece fare la nuova cosa *. Questo è esattamente ciò che fa '.stop(). –
+1 per il chiarimento! – moey