Próbuję odtworzyć określoną animację za każdym naciśnięciem przycisku.Animacja jQuery + Animate.css działa tylko raz, animacja nie resetuje się
W szczególności używam biblioteki jQuery
i animate.css
dla tego efektu: po kliknięciu przycisku dodaje się klasę (dwie klasy, aby dokładnie: fadeInDown animated
) do elementu, który chcę animować.
Animacja działa poprawnie, ale tylko jeden raz. Dlaczego to?
Fiddle: http://jsfiddle.net/jqm4vjLj/2/
Chcę animacja zresetować przy każdym kliknięciu przycisku, nawet jeśli jest w połowie realizacji z poprzedniego kliknięcia. Powinien również działać, gdy kliknę przycisk, nie tylko jeden raz.
JS:
$("#button").click(function() {
$("#button").removeClass();
$("#button").addClass("fadeInDown animated");
});
klas z animate.css:
@-webkit-keyframes fadeInDown {
0% {
opacity: 0;
-webkit-transform: translateY(-20px);
transform: translateY(-20px);
}
100% {
opacity: 1;
-webkit-transform: translateY(0);
transform: translateY(0);
}
}
@keyframes fadeInDown {
0% {
opacity: 0;
-webkit-transform: translateY(-20px);
-ms-transform: translateY(-20px);
transform: translateY(-20px);
}
100% {
opacity: 1;
-webkit-transform: translateY(0);
-ms-transform: translateY(0);
transform: translateY(0);
}
}
.fadeInDown {
-webkit-animation-name: fadeInDown;
animation-name: fadeInDown;
}
.animated {
-webkit-animation-duration: 1s;
animation-duration: 1s;
-webkit-animation-fill-mode: both;
animation-fill-mode: both;
}
To jest genialne. Świetne odpowiedzi w tym wątku, ale ten fragment kodu przygwoździł dokładnie to, o co prosiłem. Dziękuję Ci. – Tiago
W każdej chwili :) – bgoldst
Pisałem tę samą odpowiedź, ale zostałem pobity! Żadna z pozostałych odpowiedzi nie jest poprawna, ponieważ wszystkie czekają na zakończenie animacji, kiedy @Tiago powiedział, że powinien się zrestartować, nawet jeśli nie jest gotowy. – blex