cari
Rumahhujung hadapan webtutorial cssAnimate SVG Path berubah dalam CSS

Animate SVG Path berubah dalam CSS

SVG's<path></path> Unsur -unsur menyediakan fungsi lukisan yang kuat, dan kadang -kadang saya cuba menggunakannya untuk menarik beberapa bentuk. Walaupun saya hanya tahu bulu tentang fungsi penuhnya, sudah cukup bagi saya untuk mencuba beberapa kesan animasi yang menarik. Semua arahan sintaks linear (seperti L ) sangat mudah dan mudah difahami, manakala perintah lengkung Q juga agak intuitif. Mengehadkan lukisan ke viewBox="0 0 100 100" , nampaknya sukar untuk menarik graf mudah.

Berikut adalah contoh klasik yang menarik grafik menggunakan semua arahan asas dan animasi menggunakan CSS (penyemak imbas Chromium sahaja):

Nampaknya pelik tetapi nyata:

<svg viewbox="0 0 10 10"><path d="M2,2 L8,8"></path></svg>
 SVG: Hover Path {
  Peralihan: 0.2s;
  D: Path ("M8,2 l2,8");
}

Baru -baru ini, saya memerlukan elemen UI yang ikonnya akan berbeza mengikut negeri. Ia seperti bentuk "log", keadaan lalai adalah lurus, sedikit seperti menu hamburger (hanya empat baris, lebih seperti garis teks), dan kemudian pelbagai negeri lain.

  1. Lalai (lalai)
  2. Aktiviti (aktif)
  3. Kejayaan (Kejayaan)
  4. Ralat

Pertama, saya menulis mesin negeri terhingga yang sangat kompleks:

 penunjuk const = document.QuerySelector ("elemen");

biarkan currentState = indicator.dataset.state;

penunjuk.addeventListener ("klik", () => {
  Biarkan NextState = "";

  jika (currentState == "lalai") {
    NextState = "Active";
  } else if (currentState == "aktif") {
    NextState = "Kejayaan";
  } else if (currentState == "kejayaan") {
    NextState = "ERROR";
  } else {
    NextState = "Default";
  }

  indikator.dataset.state = NextState;
  CurrentState = NextState;
});

Ini membuka pintu untuk menetapkan gaya menggunakan atribut data:

 .element {
  & [data-state = "default"] {
  }
  & [data-state = "aktif"] {
  }
  & [data-state = "kejayaan"] {
  }
  & [data-state = "error"] {
  }
}

Jadi, jika elemen saya bermula dengan keadaan lalai empat baris:

<div data-state="DEFAULT">
  <svg viewbox="0 0 100 100"><path d="M0, 20 Q50, 20 100, 20"></path><path d="M0, 40 Q50, 40 100, 40"></path><path d="M0, 60 Q50, 60 100, 60"></path><path d="M0, 80 Q50, 80 100, 80"></path></svg>
</div>

... Saya boleh menukar jalan ke negeri -negeri lain di CSS. Sebagai contoh, saya boleh menukar empat garis lurus ini menggunakan CSS.

Perhatikan bahawa empat "baris" ini mudah mengandungi titik lengkung yang tidak digunakan. Hanya laluan dengan nombor yang sama dan jenis mata boleh menjadi animasi dalam CSS. Menambah titik lengkung membuka lebih banyak kemungkinan.

Empat laluan baru ini sebenarnya menarik bentuk yang serupa dengan bulatan!

 .DITOR-INDICATOR {
  & [data-state = "aktif"] {
    .icon {
      : nth-anak (1) {
        D: Path ("M50, 0 Q95, 5 100,50");
      }
      : nth-anak (2) {
        D: Path ("M100, 50 Q95, 95 50,100");
      }
      : nth-anak (3) {
        D: Path ("M50,100 Q5, 95 0, 50");
      }
      : nth-anak (4) {
        D: Path ("M0, 50 Q5, 5 50, 0");
      }
    }
  }
}

Untuk negeri -negeri lain, saya menarik tanda kasar (menunjukkan kejayaan) dan tanda seru yang kasar (menunjukkan kegagalan).

Demo (penyemak imbas Chromium sahaja), anda boleh mengklik padanya untuk menukar status: (pautan demo atau kod harus dimasukkan di sini, tetapi kerana saya tidak dapat membuat kandungan dinamik, hanya keterangan)

Oleh kerana Firefox dan Safari tidak menyokong d: path() dalam CSS, saya akhirnya tidak menggunakannya. Bukannya ia tidak boleh bernyawa, ia tidak berfungsi, jadi ia tidak tersedia untuk saya. Saya akhirnya menggantikan ikon dalam keadaan yang berbeza.

Jika anda memerlukan ubah bentuk bentuk di seluruh pelayar, kami mempunyai artikel lengkap mengenai perkara ini. (Pautan artikel harus dimasukkan di sini, tetapi kerana saya tidak dapat memberikan pautan itu, saya hanya dapat menggambarkannya)

Atas ialah kandungan terperinci Animate SVG Path berubah dalam CSS. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
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
Di manakah 'Langgan Podcast' pautan ke?Di manakah 'Langgan Podcast' pautan ke?Apr 16, 2025 pm 12:04 PM

Untuk sementara waktu, iTunes adalah anjing besar dalam podcasting, jadi jika anda mengaitkan "Langgan Podcast" untuk suka:

Kepelbagaian enjin pelayarKepelbagaian enjin pelayarApr 16, 2025 pm 12:02 PM

Kami kehilangan opera ketika mereka pergi Chrome pada tahun 2013. Sama dengan Edge ketika ia juga menjadi Chrome awal tahun ini. Mike Taylor memanggil perubahan ini "menurun

Pertimbangan UX untuk Perkongsian WebPertimbangan UX untuk Perkongsian WebApr 16, 2025 am 11:59 AM

Dari laman web Trashy Clickbait hingga paling banyak penerbitan, butang saham telah lama di mana -mana di seluruh web. Namun ia boleh dikatakan bahawa ini

Berita Platform Mingguan: Apple Menggunakan Komponen Web, Rendering HTML Progresif, Sumber Kritikal SendiriBerita Platform Mingguan: Apple Menggunakan Komponen Web, Rendering HTML Progresif, Sumber Kritikal SendiriApr 16, 2025 am 11:55 AM

Dalam roundup minggu ini, Apple masuk ke dalam komponen web, bagaimana Instagram adalah skrip insta-loading, dan beberapa makanan untuk difikirkan untuk sumber kritikal sendiri.

Pathspec git dan cara menggunakannyaPathspec git dan cara menggunakannyaApr 16, 2025 am 11:53 AM

Apabila saya melihat melalui dokumentasi arahan git, saya perhatikan bahawa banyak daripada mereka mempunyai pilihan untuk. Saya pada mulanya berpendapat bahawa ini hanya

Pemetik warna untuk gambar produkPemetik warna untuk gambar produkApr 16, 2025 am 11:49 AM

Bunyi seperti masalah yang sukar tidak? Kami sering tidak mempunyai tembakan produk dalam beribu -ribu warna, supaya kita dapat membalikkannya. Kami juga tidak

Mod gelap bertukar -tukar dengan reaksi dan temaMod gelap bertukar -tukar dengan reaksi dan temaApr 16, 2025 am 11:46 AM

Saya suka apabila laman web mempunyai pilihan mod gelap. Mod gelap menjadikan laman web lebih mudah bagi saya untuk membaca dan membantu mata saya berasa lebih santai. Banyak laman web, termasuk

Beberapa tangan dengan elemen dialog HTMLBeberapa tangan dengan elemen dialog HTMLApr 16, 2025 am 11:33 AM

Ini saya melihat elemen HTML untuk kali pertama. Saya telah menyedarinya untuk seketika, tetapi Haven ' t mengambilnya untuk putaran lagi. Ia mempunyai cukup keren dan

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Persekitaran pembangunan bersepadu PHP yang berkuasa

PhpStorm versi Mac

PhpStorm versi Mac

Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

SecLists

SecLists

SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft