Bagaimanakah Saya Boleh Menggantikan Animasi SMIL yang Tidak Diguna pakai dengan CSS atau Animasi Web?

Linda Hamilton
Lepaskan: 2024-10-25 17:34:32
asal
392 orang telah melayarinya

How Can I Replace Deprecated SMIL Animations with CSS or Web Animations?

Kesan Tuding: Animasi 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>
Salin selepas log masuk

Kesan Penskalaan pada Tukar

Masalah:
Animasikan elemen untuk menskalakan beberapa kali pada perubahan yang dilakukan.

Penyelesaian:
Pertimbangkan pilihan berikut:

  1. Animasi CSS: Gunakan kerangka kunci CSS untuk mencapai penskalaan:
<code class="css">@keyframes scale-animation {
    0% { transform: scale(1); }
    50% { transform: scale(1.12); }
    100% { transform: scale(1); }
}</code>
Salin selepas log masuk

Kemudian gunakan animasi pada elemen:

<code class="css">.element_tpl {
    animation: scale-animation 0.5s infinite alternate;
}</code>
Salin selepas log masuk
  1. Animasi Web: Gunakan API Animasi Web untuk mengawal penskalaan secara pemrograman:
<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>
Salin selepas log masuk

Skalakan Naik dan Turun pada Klik

Masalah:
Animasikan elemen untuk naik dan turun apabila mengklik.

Penyelesaian:

  1. Peralihan CSS: Gunakan peralihan CSS untuk mencetuskan perubahan skala pada acara turun tetikus dan naik tetikus:
<code class="css">.element_tpl {
    transition: transform 0.2s;
}

.element_tpl:active {
    transform: scale(1.1);
}</code>
Salin selepas log masuk
  1. Animasi Web: Gunakan Animasi Web API untuk mengendalikan acara klik dan skala elemen dengan sewajarnya:
<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>
Salin selepas log masuk

Menyimpan Animasi SMIL

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!