Rumah >hujung hadapan web >tutorial css >Bagaimanakah Saya Boleh Menggantikan Animasi SMIL yang Tidak Diguna pakai dengan CSS atau Animasi Web?
Masalah:
Teg animasi SMIL ditamatkan dan peralihan tuding CSS perlu dilaksanakan untuk menggantikannya.
Penyelesaian:
Alih keluar teg set dan tambah CSS pada elemen_tpl:hover pseudo-class:
<code class="css">.element_tpl:hover { stroke-opacity: 0.5; }</code>
Masalah:
Animasikan elemen untuk menskalakan beberapa kali pada perubahan yang dilakukan.
Penyelesaian:
Pertimbangkan pilihan berikut:
<code class="css">@keyframes scale-animation { 0% { transform: scale(1); } 50% { transform: scale(1.12); } 100% { transform: scale(1); } }</code>
Kemudian gunakan animasi pada elemen:
<code class="css">.element_tpl { animation: scale-animation 0.5s infinite alternate; }</code>
<code class="javascript">// Create a new animation const animation = document.timeline.addAnimation(); // Define keyframes const keyframes = [ { transform: 'scale(1)', offset: 0 }, { transform: 'scale(1.12)', offset: 0.5 }, { transform: 'scale(1)', offset: 1 } ]; // Apply keyframes to the animation animation.effect = keyframes; // Target the element animation.target = document.querySelector('.element_tpl');</code>
Masalah:
Animasikan elemen untuk naik dan turun apabila mengklik.
Penyelesaian:
<code class="css">.element_tpl { transition: transform 0.2s; } .element_tpl:active { transform: scale(1.1); }</code>
<code class="javascript">// Add event listener document.querySelector('.element_tpl').addEventListener('click', (event) => { // Create a new animation const animation = document.timeline.addAnimation(); // Define keyframes const keyframes = [ { transform: 'scale(1)', offset: 0 }, { transform: 'scale(1.1)', offset: 0.2 }, { transform: 'scale(1)', offset: 0.4 }, ]; // Apply keyframes to the animation animation.effect = keyframes; // Target the element animation.target = event.target; });</code>
Masalah:
Pindahkan animasi SMIL ke CSS atau Animasi web.
Penyelesaian:
Gunakan poliisi SMIL yang dibuat oleh Eric Willigers: https://github.com/ericwilligers/svg-animation. Polyfill ini menukar animasi SMIL kepada Animasi Web, menyediakan cara alternatif untuk melaksanakannya.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggantikan Animasi SMIL yang Tidak Diguna pakai dengan CSS atau Animasi Web?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!