Czy można otrzymać powiadomienie (np. Oddzwonienie) po zakończeniu przejścia CSS?
javascript
css
css-transitions
Pompair
źródło
źródło
Odpowiedzi:
Wiem, że Safari implementuje wywołanie zwrotne webkitTransitionEnd , które możesz dołączyć bezpośrednio do elementu z przejściem.
Ich przykład (ponownie sformatowany do wielu wierszy):
źródło
this
elementem wewnątrz wywołania zwrotnego. Ale jest to wymagany parametr, więc w tym przypadku spełnia on tylko wymaganie.useCaptureMode
. Kiedy zdarzenie ma miejsce, są dwie fazy - pierwsza faza to tryb przechwytywania, druga to tryb bąbelkowy. W trybie przechwytywania zdarzenie schodzi z elementu body do określonego elementu. Następnie przechodzi w tryb bąbelkowy, w którym działa odwrotnie. Ten ostatni fałszywy parametr określa, że detektor zdarzeń ma działać w trybie bąbelkowym. Jednym z zastosowań tego jest dołączanie programów obsługi zdarzeń tuż przed ich użyciem w trybie bąbelkowym. =) 37signals.com/svn/posts/…Tak, jeśli takie rzeczy są obsługiwane przez przeglądarkę, to po zakończeniu przejścia wyzwalane jest zdarzenie. Faktyczne zdarzenie różni się jednak w zależności od przeglądarki:
webkitTransitionEnd
transitionend
msTransitionEnd
oTransitionEnd
Należy jednak pamiętać, że
webkitTransitionEnd
nie zawsze strzela! Przyłapało mnie to wiele razy i wydaje się, że ma miejsce, gdyby animacja nie miała wpływu na element. Aby obejść ten problem, warto użyć limitu czasu do uruchomienia procedury obsługi zdarzeń w przypadku, gdy nie została ona wyzwolona zgodnie z oczekiwaniami. Wpis na blogu dotyczący tego problemu jest dostępny tutaj: http://www.cuppadev.co.uk/the-trouble-with-css-transitions/ <- 500 Wewnętrzny błąd serweraMając to na uwadze, zwykle używam tego zdarzenia w kawałku kodu, który wygląda trochę tak:
Uwaga: aby uzyskać nazwę końca zdarzenia przejścia, możesz użyć metody opublikowanej jako odpowiedź w: Jak znormalizować funkcje przejścia CSS3 w różnych przeglądarkach? .
Uwaga: to pytanie dotyczy również: - zdarzeń przejścia CSS3
źródło
transitionEndedHandler
siętransitionEnded
(lub zmianatransitionEnded
przeztransitionEndedHandler
waddEventListener
iremoveEventListener
a rozmowatransitionEnded
wtransitionEndedHandler
)transitionEnded
kiedy miałem na myślitransitionEndedHandler
.Używam następującego kodu, jest znacznie prostszy niż próba wykrycia, którego konkretnego zdarzenia końcowego używa przeglądarka.
Alternatywnie, jeśli używasz bootstrap, możesz po prostu to zrobić
Dzieje się tak, ponieważ zawierają one następujące elementy w pliku bootstrap.js
źródło
JQuery.transit plugin , plugin do przekształceń CSS3 i przejściami, mogą dzwonić animacje CSS ze skryptu i daje zwrotnego.
źródło
Można to łatwo osiągnąć dzięki
transitionend
wydarzeniu, patrz dokumentacja tutaj Prosty przykład:źródło