Bagaimana untuk Menggantikan Animasi SMIL SVG yang ditamatkan dengan CSS atau Animasi Web?

Susan Sarandon
Lepaskan: 2024-10-26 22:25:29
asal
460 orang telah melayarinya

How to Replace Deprecated SMIL SVG Animations with CSS or Web Animations?

Menggunakan CSS atau Animasi Web Daripada Animasi SMIL SVG yang Dihentikan

Pengenalan

Disebabkan penamatan SMIL (Disegerakkan Animasi Multimedia Integration Language) dalam SVG (Grafik Vektor Boleh Skala), adalah penting untuk mencari pendekatan alternatif menggunakan CSS atau animasi Web. Peralihan ini membantu meningkatkan prestasi dan keserasian merentas penyemak imbas moden.

Menggantikan Kesan Hover

  • Alih keluar teg set SMIL.
  • Tambah Peraturan tuding CSS:

    <code class="css">.element_tpl:hover {
      stroke-opacity: 0.5;
    }</code>
    Salin selepas log masuk

Menggantikan Animasi Skala

  • Gunakan CSS untuk penskalaan:

    <code class="css">.element_tpl {
      transform: scale(1);
    }
    
    .element_tpl:active {
      transform: scale(1.1); 
    }</code>
    Salin selepas log masuk
  • Perhatikan bahawa ini mungkin mengakibatkan tingkah laku yang sedikit berbeza berbanding animasi SMIL.

Menggantikan Animasi Klik

  • Gunakan kerangka utama CSS untuk menghidupkan peralihan apabila elemen diklik:

    <code class="css">@keyframes click-anim {
      from {
          transform: scale(1);
      }
      to {
          transform: scale(1.15);
      }
    }
    
    .element_tpl {
      animation: click-anim 0.2s forwards;
      animation-delay: 0.2s;
    }</code>
    Salin selepas log masuk
  • Sekali lagi, tingkah laku mungkin berbeza sedikit daripada animasi SMIL asal.

Contoh Berfungsi

<code class="html"><g id="switcher" cursor="pointer" stroke-width="0.15">
    <g transform="scale(1,1.375)">
        <g>
            <rect x="-0.5" y="-0.5" width="1" height="1" stroke="white" pointer-events="none"/>
            <rect x="-0.5" y="-0.5" width="1" height="1" fill="white">
                <line x1="0" y1="-0.25" x2="0" y2="0.25" stroke-width="0.17" stroke-linecap="round" pointer-events="none"/>
            </rect>
        </g>
    </g>
</g></code>
Salin selepas log masuk
<code class="css">#switcher {
    transform: scale(1);
}

#switcher:hover {
    stroke-opacity: 0.5;
}

#switcher:active {
    transform: scale(1.1); 
}

@keyframes click-anim {
    from {
        transform: scale(1);
    }
    to {
        transform: scale(1.15);
    }
}

#switcher:active {
    animation: click-anim 0.2s forwards;
    animation-delay: 0.2s;
}</code>
Salin selepas log masuk

Menyimpan Animasi Sedia Ada

Pautan yang disediakan mengandungi animasi yang lebih kompleks daripada contoh dalam soalan. Menukarnya kepada animasi CSS / Web akan memerlukan lebih banyak usaha dan kod tersuai. Adalah disyorkan untuk menggunakan poliisi SMIL yang dinyatakan dalam jawapan di bawah untuk mengekalkan animasi SMIL sedia ada semasa beralih kepada sokongan penyemak imbas moden.

Atas ialah kandungan terperinci Bagaimana untuk Menggantikan Animasi SMIL SVG yang ditamatkan 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!