Rumah >hujung hadapan web >tutorial css >Bingkai dengan tutorial animasi bingkai dengan CSS dan JavaScript
Tutorial ini meneroka pelbagai kaedah untuk membuat animasi bingkai-bingkai yang lancar, pelaku, dan dikekalkan menggunakan HTML, CSS, dan JavaScript. Kami akan membina animasi mata berkedip, secara progresif menyempurnakan pendekatan kami untuk mencapai hasil yang optimum di seluruh pelayar dan peranti.
Konsep Utama:
translate3d
), mengoptimumkan prestasi dengan mengurangkan pengecutan dan reflows. Apakah animasi bingkai-by-frame?
animasi bingkai-by-frame, seperti yang ditakrifkan oleh Adobe, melibatkan perubahan kandungan panggung dalam setiap bingkai. Ia sesuai untuk animasi kompleks di mana setiap bingkai adalah unik. Pada asasnya, urutan imej mencipta ilusi pergerakan.
Tutorial ini menggunakan imej SVG untuk berskala mereka. Alternatif seperti PNG, JPEG, dan GIF dibincangkan kemudian. Kami akan menggunakan jQuery dan menganggap autoprefixer dikonfigurasi.
Kaedah:
Menukar sumber imej: Kaedah mudah ini melibatkan secara dinamik mengubah atribut src
elemen <img alt="Bingkai dengan tutorial animasi bingkai dengan CSS dan JavaScript" >
. requestAnimationFrame
digunakan untuk animasi yang lebih lancar, tetapi pramuat imej adalah penting untuk mengelakkan jank awal. Preloading dicapai dengan memasuki Divs Tersembunyi dengan imej sebagai imej latar belakang.
Mengubah kelegapan imej: Pendekatan ini menghindari pengecatan semula dengan mengubah kelegapan imej dan bukannya sumber. Semua imej dimuatkan, meningkatkan prestasi tetapi masih memerlukan banyak beban imej.
Menukar Kedudukan Sprite: Ini menggunakan lembaran sprite CSS -imej tunggal yang mengandungi semua bingkai animasi. Animasi CSS Tukar background-position
untuk membuat animasi.
bergerak sprite dengan transform: Ini mengoptimumkan kaedah 3 dengan menggunakan transform: translateX
bukan background-position
. Ini meminimumkan pengecutan dan reflows. Kejatuhan diperlukan untuk versi IE yang lebih tua yang tidak menyokong nilai peratusan dalam animasi translateX
. transform: translate3d(0, 0, 0)
digunakan untuk pecutan perkakasan.
inline svg: inlining svg dan bukannya menggunakan fail luaran boleh meningkatkan masa beban halaman awal, terutama untuk halaman dengan kebarangkalian revisit yang rendah.
Perbandingan prestasi: Ujian prestasi (mis., Menggunakan JSPERF) menunjukkan bahawa kaedah transformasi sprite (Kaedah 4) umumnya menawarkan prestasi rendering terbaik.
Alternatif:
Kesimpulan:
Kaedah terbaik bergantung kepada keperluan projek. Mengutamakan SVG untuk berskala, gunakan sifat transformasi untuk prestasi, dan pertimbangkan sprite untuk masa beban awal yang optimum. Pilih pendekatan yang terbaik mengimbangi prestasi, mengekalkan, dan kebiasaan pemaju.
(URL imej tidak termasuk dalam output kerana ia tidak disediakan dalam format yang mudah digunakan. Gantikan ruang letak dengan URL imej sebenar anda.)
Atas ialah kandungan terperinci Bingkai dengan tutorial animasi bingkai dengan CSS dan JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!