Akses Elemen SVG dengan JavaScript
SVG (Grafik Vektor Boleh Skala) membenarkan pereka bentuk untuk mencipta grafik vektor yang boleh dimanipulasi dan diskalakan secara dinamik tanpa kehilangan kualiti. Untuk mengakses dan memanipulasi elemen SVG dengan JavaScript, anda mempunyai dua pilihan utama: menggunakan API penyemak imbas terbina dalam atau menggunakan perpustakaan luaran seperti Raphaël atau jQuery SVG.
Menggunakan API Penyemak Imbas Terbina dalam
Pendekatan JavaScript asli melibatkan penggunaan Model Objek Dokumen (DOM) untuk mengakses elemen SVG:
Dapatkan rujukan kepada objek SVG:
const svgObject = document.getElementById("mySVG");
Akses elemen individu mengikut ID mereka:
const deltaPath = svgObject.contentDocument.getElementById("delta");
Memanipulasi atribut elemen:
deltaPath.setAttribute("fill", "#00FF00");
Tambah pendengar acara untuk bertindak balas kepada interaksi pengguna:
deltaPath.addEventListener("click", () => { alert("Hello World!"); });
Nota: Pendekatan ini memerlukan SVG dimuatkan pada domain yang sama dengan fail HTML kerana dasar asal yang sama.
Menggunakan Perpustakaan Luaran
Sebagai alternatif, anda boleh menggunakan perpustakaan luaran seperti Raphaël atau jQuery SVG:
Sertakan perpustakaan dalam HTML anda:
<script src="raphael.js"></script>
Gunakan perpustakaan untuk mencipta dan memanipulasi elemen SVG:
var paper = Raphael("mySVG"); var deltaPath = paper.path("M34.074,86.094..."); deltaPath.click(function() { alert("Hello World!"); });
Perbandingan Pendekatan
|
API Terbina dalam | Perpustakaan Luaran | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Prestasi | Lebih Rendah | Lebih Tinggi | |||||||||||||||
Keserasian merentas penyemak imbas | Berbeza-beza | Secara umumnya baik | |||||||||||||||
Kemudahan penggunaan | Sederhana | Lebih mudah | |||||||||||||||
Fleksibiliti | Terhad | Lebih Besar |
Atas ialah kandungan terperinci Bagaimana Anda Berinteraksi dengan Elemen SVG Menggunakan JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!