Apakah mungkin untuk mendapatkan pemberitahuan (seperti panggilan balik) ketika transisi CSS telah selesai?
javascript
css
css-transitions
Pompair
sumber
sumber
Jawaban:
Saya tahu bahwa Safari mengimplementasikan callback webkitTransitionEnd yang dapat Anda lampirkan langsung ke elemen dengan transisi.
Contoh mereka (diformat ulang menjadi beberapa baris):
sumber
this
elemen di dalam callback. Tetapi itu adalah parameter yang dibutuhkan, jadi dalam hal ini hanya memenuhi persyaratan.useCaptureMode
. Ketika suatu peristiwa terjadi, ada dua fase - fase pertama adalah mode pengambilan, yang kedua adalah mode gelembung. Dalam mode pengambilan, peristiwa turun dari elemen tubuh ke elemen yang ditentukan. Kemudian memasuki mode gelembung, di mana ia melakukan kebalikannya. Parameter palsu terakhir itu menentukan bahwa Anda ingin event listener terjadi dalam mode gelembung. Salah satu kegunaannya adalah untuk memasang penangan kejadian tepat sebelum mereka dibutuhkan dalam mode gelembung. =) 37signals.com/svn/posts/…Ya, jika hal-hal seperti itu didukung oleh browser, maka sebuah peristiwa akan dipicu saat transisi selesai. Namun, acara sebenarnya berbeda di antara browser:
webkitTransitionEnd
transitionend
msTransitionEnd
oTransitionEnd
Bagaimanapun Anda harus sadar bahwa
webkitTransitionEnd
tidak selalu menembak! Hal ini telah membuat saya bingung beberapa kali, dan tampaknya terjadi jika animasi tidak berpengaruh pada elemen. Untuk menyiasatinya, masuk akal untuk menggunakan waktu tunggu untuk mengaktifkan penangan peristiwa jika tidak dipicu seperti yang diharapkan. Entri blog tentang masalah ini tersedia di sini: http://www.cuppadev.co.uk/the-trouble-with-css-transitions/ <- 500 Internal Server ErrorDengan pemikiran ini, saya cenderung menggunakan acara ini dalam potongan kode yang terlihat seperti ini:
Catatan: untuk mendapatkan nama akhir peristiwa transisi, Anda dapat menggunakan metode yang diposting sebagai jawaban di: Bagaimana cara menormalkan fungsi Transisi CSS3 di seluruh browser? .
Catatan: pertanyaan ini juga terkait dengan: - Peristiwa transisi CSS3
sumber
transitionEndedHandler
ditransitionEnded
(atau perubahantransitionEnded
olehtransitionEndedHandler
diaddEventListener
danremoveEventListener
dan panggilantransitionEnded
ditransitionEndedHandler
)transitionEnded
ketika saya maksudtransitionEndedHandler
.Saya menggunakan kode berikut, jauh lebih sederhana daripada mencoba mendeteksi peristiwa akhir tertentu yang digunakan browser.
Atau jika Anda menggunakan bootstrap maka Anda dapat melakukannya
Ini karena mereka menyertakan yang berikut ini di bootstrap.js
sumber
The jQuery.transit Plugin , plugin untuk transformasi CSS3 dan transisi, dapat menghubungi animasi CSS Anda dari script dan memberikan panggilan balik.
sumber
Ini dapat dengan mudah dicapai dengan
transitionend
Acara, lihat dokumentasi di sini . Contoh sederhana:sumber