Apakah ada peristiwa yang dipecat oleh elemen untuk memeriksa apakah transisi css3 telah dimulai atau berakhir?
sumber
Apakah ada peristiwa yang dipecat oleh elemen untuk memeriksa apakah transisi css3 telah dimulai atau berakhir?
Penyelesaian CSS Transition menghasilkan Acara DOM yang sesuai. Suatu peristiwa dipecat untuk setiap properti yang mengalami transisi. Ini memungkinkan pengembang konten untuk melakukan tindakan yang disinkronkan dengan penyelesaian transisi.
Untuk menentukan kapan transisi selesai, tetapkan fungsi pendengar acara JavaScript untuk acara DOM yang dikirim pada akhir transisi. Acara ini adalah turunan dari WebKitTransitionEvent, dan tipenya adalah
webkitTransitionEnd
.
box.addEventListener( 'webkitTransitionEnd',
function( event ) { alert( "Finished transition!" ); }, false );
Ada satu peristiwa yang dipecat ketika transisi selesai. Di Firefox, acara tersebut adalah
transitionend
, di OperaoTransitionEnd
,, dan di WebKitwebkitTransitionEnd
.
Ada satu jenis acara transisi yang tersedia. The
oTransitionEnd
peristiwa terjadi pada penyelesaian transisi.
The
transitionend
peristiwa terjadi pada penyelesaian transisi. Jika transisi dihapus sebelum selesai, acara tidak akan menyala.
Stack Overflow: Bagaimana cara menormalkan fungsi Transisi CSS3 di seluruh browser?
Memperbarui
Semua browser modern sekarang mendukung acara yang tidak diperbaiki:
element.addEventListener('transitionend', callback, false);
https://caniuse.com/#feat=css-transitions
Saya menggunakan pendekatan yang diberikan oleh Pete, namun saya sekarang mulai menggunakan yang berikut
Atau jika Anda menggunakan bootstrap maka Anda cukup melakukannya
Ini karena mereka menyertakan yang berikut di bootstrap.js
Catatan mereka juga menyertakan fungsi emulateTransitionEnd yang mungkin diperlukan untuk memastikan panggilan balik selalu terjadi.
http://blog.alexmaccaw.com/css-transitions
sumber
Semua browser modern sekarang mendukung acara yang tidak diperbaiki:
element.addEventListener('transitionend', callback, false);
Bekerja di versi terbaru Chrome, Firefox dan Safari. Bahkan IE10 +.
sumber
Di Opera 12 saat Anda mengikat menggunakan JavaScript biasa, 'oTransitionEnd' akan berfungsi:
namun jika Anda mengikat melalui jQuery, Anda perlu menggunakan 'otransitionend'
Jika Anda menggunakan Modernizr atau bootstrap-transition.js Anda cukup melakukan perubahan:
Anda dapat menemukan beberapa info di sini juga http://www.ianlunn.co.uk/blog/articles/opera-12-otransitionend-bugs-and-workarounds/
sumber
Hanya untuk bersenang-senang, jangan lakukan ini!
sumber
Jika Anda hanya ingin mendeteksi satu transisi saja, tanpa menggunakan kerangka JS apa pun di sini adalah fungsi utilitas kecil yang nyaman:
Pemakaian:
maka jika Anda ingin membatalkan di beberapa titik Anda masih dapat melakukannya dengan
Ini bagus untuk penggunaan acara lainnya :)
sumber