Dengan kemunculan SVG, pereka bentuk telah memperoleh alat yang berkuasa untuk mencipta grafik dinamik dan responsif. Dalam sesetengah kes, anda mungkin perlu memanipulasi grafik ini melalui JavaScript, seperti menukar isian elemen atau membalas peristiwa klik.
Satu soalan biasa timbul: adakah mungkin untuk mengakses elemen SVG terus daripada JavaScript tanpa bergantung pada ketiga -perpustakaan parti? Jawapannya ialah ya.
Bermula
Untuk bermula, buat fail SVG dalam Illustrator dan eksportnya, tinggalkan sebarang data awal yang tidak diperlukan. Ini akan menghasilkan fail XML yang mengandungi kod SVG, dengan setiap elemen dikenal pasti oleh ID unik.
Mengakses SVG
Seterusnya, benamkan SVG ke dalam HTML dokumen menggunakan
<object>
Interaksi JavaScript
Setelah SVG dibenamkan, anda boleh mengakses elemen individu dengan ID menggunakan document.getElementById("elementId"). Teknik ini membolehkan anda bekerja dengan mana-mana elemen khusus dalam SVG.
Contohnya, untuk menukar warna isian elemen dengan ID "delta":
var delta = document.getElementById("delta"); delta.setAttribute("fill", "green");
Pengendalian Acara
Anda juga boleh menetapkan pendengar acara kepada elemen SVG untuk bertindak balas terhadap interaksi pengguna. Untuk melampirkan pendengar acara untuk acara klik:
var delta = document.getElementById("delta"); delta.addEventListener("click", function() { alert("Clicked!"); }, false);
Penghadan
Walaupun pendekatan ini berdaya maju, adalah penting untuk mengambil perhatian batasannya. Pertama, SVG mesti dihoskan pada domain yang sama dengan fail HTML, mematuhi peraturan perkongsian sumber silang (CORS). Selain itu, teknik ini tidak fleksibel atau menyeluruh seperti menggunakan perpustakaan luaran seperti Raphaël atau jQuery SVG, yang menyediakan fungsi khusus untuk bekerja dengan SVG.
Pendekatan Alternatif
Jika anda memerlukan keupayaan yang lebih maju atau menghadapi isu silang asal, pertimbangkan untuk menggunakan perpustakaan SVG. Perpustakaan seperti Raphaël dan jQuery SVG menawarkan kaedah mudah untuk memanipulasi dan berinteraksi dengan elemen SVG, menjadikannya lebih mudah untuk mencipta aplikasi berasaskan SVG yang dinamik dan responsif.
Tidak kira pilihan anda, kedua-dua pendekatan menyediakan pilihan yang fleksibel untuk berinteraksi dengan SVG. melalui JavaScript.
Atas ialah kandungan terperinci Bolehkah saya Mengakses Elemen SVG Secara Terus daripada JavaScript Tanpa Menggunakan Perpustakaan Pihak Ketiga?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!