เมื่อต้องการเพิ่มคลาสให้กับองค์ประกอบ SVG มีสองวิธีในการดำเนินการ
เผยแพร่แล้ว: 2023-02-08เมื่อพูดถึงการเพิ่มคลาสให้กับองค์ประกอบ SVG มีสองวิธีในการดำเนินการ วิธีแรกและชัดเจนที่สุดคือใช้แอตทริบิวต์ className: var mySvg = document.querySelector('#my-svg'); mySvg.className = 'คลาสของฉัน'; วิธีนี้จะทำงานได้ดีหากคุณจัดการกับคลาสเดียวเท่านั้น แต่ถ้าคุณต้องการเพิ่ม หลายคลาส คุณจะต้องใช้ classList API: var mySvg = document.querySelector('#my-svg'); mySvg.classList.add('คลาสของฉัน'); mySvg.classList.add('another-class'); หากคุณต้องการลบคลาส คุณสามารถใช้เมธอด classList.remove(): mySvg.classList.remove('my-class'); และสุดท้าย หากคุณต้องการสลับคลาส (เช่น เพิ่มถ้าไม่มี หรือลบออกถ้ามี) คุณสามารถใช้เมธอด classList.toggle(): mySvg.classList.toggle('my-class') ;
สามารถใช้ Document Object Model (DOM) เพื่อแสดงทั้ง HTML และ SVG ด้วยเหตุนี้ การจัดการโดยใช้ Javascript จึงค่อนข้างง่าย ในบทเรียนนี้ ฉันจะพูดถึงวิธีใช้ทั้ง SVG แบบอินไลน์และภายนอก GitHub ได้จัดเตรียมตัวอย่างโค้ดไว้มากมาย ซึ่งสามารถพบได้ที่ด้านบนของหน้านี้ เมื่อคุณสร้าง SVG ภายนอกโดยใช้รหัสเดียวกัน เนื้อหาขององค์ประกอบจะสามารถนำมาใช้ในตัว SVG ได้ SVG ไม่สามารถเข้าถึงเอกสาร HTML ที่ฝังอยู่ภายใน ดังนั้นจึงไม่สามารถดู SVG อื่น ๆ บนหน้าได้ หากคุณรวมโค้ดด้วย CDATA การแยกวิเคราะห์ XML จะถือว่าโค้ด JS เป็นส่วนหนึ่งของ XML
การสร้างและการลบองค์ประกอบเป็นสิ่งเดียวกัน แต่อยู่ในที่ต่างกัน เมื่อใช้เมธอด createElementNS() ของเอกสารที่เกี่ยวข้อง คุณจะส่งชื่อแท็กและเนมสเปซของเอกสารที่เกี่ยวข้องเพื่อสร้างองค์ประกอบ หากต้องการลบองค์ประกอบ คุณต้องสร้างโหนดข้อความแยกต่างหากโดยใช้ createTextNode() แล้วผนวกเข้ากับองค์ประกอบ เนื่องจากไม่ได้อยู่ในเอกสารเดียวกัน จึงสามารถใช้ในลักษณะนี้ได้
แอตทริบิวต์ class กำหนดชื่อคลาสต่อไปนี้ให้กับแท็ก svg>: class, class และ class เมื่อกำหนดชื่อคลาส ให้ใช้สไตล์ชีตหรือองค์ประกอบในเครื่องที่มีชื่อสไตล์ สไตล์ถูกสร้างขึ้นโดยใช้คลาส เช่น ชื่อคลาส
เมื่อพูดถึงการจัดรูปแบบองค์ประกอบ HTML รองรับแอตทริบิวต์เฉพาะองค์ประกอบ 'style' และ 'class' รวมถึงแอตทริบิวต์คลาสและสไตล์ของ HTML แอตทริบิวต์ 'คลาส' กำหนดชื่อให้กับองค์ประกอบ ซึ่งจะใช้เพื่อระบุองค์ประกอบในภาษาสไตล์ แอตทริบิวต์สไตล์ถูกใช้โดยองค์ประกอบเพื่อระบุการประกาศ CSS
คุณสมบัติและค่าของรหัส HTML ถูกเก็บไว้ในคุณสมบัติ CSS และค่าของ SVG มีบางตัวอย่างที่คล้ายกับคุณสมบัติ HTML
คุณสามารถใส่คลาสใน Svg ได้ไหม
เป็นไปได้ที่จะใส่คลาสใน svg แต่ไม่แนะนำเพราะอาจทำให้เกิดปัญหากับบางเบราว์เซอร์
เมื่อคุณเพิ่มเนมสเปซ HTML ให้กับ SVG ของคุณ คุณสามารถจัดรูปแบบองค์ประกอบด้วย CSS และโหลด SVG โดยใช้คุณสมบัติ *foreign object ซึ่งจะเปลี่ยนลักษณะที่ปรากฏ
จัดระเบียบการออกแบบกราฟิกของคุณด้วย Svgs
ไฟล์ SVG สามารถมีองค์ประกอบที่มีป้ายกำกับว่า “*svg” ได้สูงสุดสามรายการ กระบวนการจัดระเบียบการออกแบบกราฟิกของคุณออกเป็นกลุ่มเชิงตรรกะก็ง่ายเช่นกัน
สามารถใช้ Javascript กับ Svg ได้หรือไม่
เนื่องจากสามารถฝังใน HTML ได้ รูปภาพ SVG ของเราจึงสามารถจัดการได้โดยใช้ JavaScript เราสามารถทำให้ส่วนต่างๆ ของรูปภาพเคลื่อนไหวจากโค้ด แปลงให้เป็นสภาพแวดล้อมแบบโต้ตอบที่ขับเคลื่อนด้วยข้อมูล และสร้างกราฟิกจากข้อมูล
DRY เป็นวิธีที่ยอดเยี่ยมในการทำให้โค้ดของคุณเร็วขึ้น แข็งแกร่งขึ้น และใช้เวลาเขียนน้อยลง ใน IE ไม่จำเป็นต้องพึ่งพาวัตถุเหตุการณ์ส่วนกลาง ตั้งค่าวัตถุเหตุการณ์ของคุณเป็นตัวจัดการเหตุการณ์ เนื่องจากตัวแปร x และ y ได้รับการแก้ไขแล้ว จึงไม่จำเป็นต้องเปลี่ยนแปลงแอตทริบิวต์เพิ่มเติม รหัสเหตุการณ์การกดแป้นและ ASCII ที่ฉันให้ไว้ข้างต้นใช้ได้กับเบราว์เซอร์ทั้งหมด หากฉันใช้เลขคี่และการกดแป้นแทนการกดแป้น สามารถใช้ AddEventListner() เพื่อแนบตัวจัดการเหตุการณ์เข้ากับองค์ประกอบโดยใช้เฉพาะแอตทริบิวต์ onfoo = * ของตัวจัดการเหตุการณ์แทนการใช้แอตทริบิวต์ onfoo= * เพื่ออธิบายสิ่งที่ควรเกิดขึ้น ฟังก์ชันภายนอกจะทำงานหลังจากโหลดหน้าเว็บแล้วเท่านั้น ดังนั้นจึงไม่จำเป็นต้องอ้างอิงองค์ประกอบใดๆ
โดยสรุป มีบางสิ่งที่ต้องระวังในระหว่างการสาธิตนี้ แท็ก svg> ใช้เพื่อสร้างภาพ SVG ในภาพ SVG จะใช้แท็ก แท็ก svg อยู่ภายในองค์ประกอบเนื้อหา แท็กสามารถพบได้ในองค์ประกอบ ตัวระบุใช้เพื่ออ้างถึงแท็ก *svg> เมื่อมีแท็ก จะใช้แอตทริบิวต์เพื่ออ้างอิง แอตทริบิวต์ของภาพเคลื่อนไหวในแท็ก svg> ถูกตั้งค่าเป็น "ease out" ต้องตั้งค่าแอตทริบิวต์ easeOut เป็นนั้น แท็ก svg> มีแอตทริบิวต์ความกว้างและความสูงที่ตั้งค่าเป็น 100%, 100% รหัสต่อไปนี้จะสร้างภาพโดยใช้ SVG และกำหนดแอตทริบิวต์ภาพเคลื่อนไหว asaseout XML xmlns=” http://www.w3.org/2000/svg” width=100% height=100% id=demo-svg svg สามารถใช้เป็นรูปแบบได้ คุณยังสามารถโต้ตอบกับไฟล์ SVG ได้ด้วยการคลิกโดยใช้เมาส์ วิธีนี้ทำได้โดยการสร้างองค์ประกอบใหม่ แทรกเข้าไปในองค์ประกอบของร่างกาย แล้วปล่อยทิ้งไว้ ด้วยการเพิ่มโค้ดต่อไปนี้ให้กับองค์ประกอบ คุณสามารถทำให้ไฟล์ svg ของคุณอ่านได้ง่ายขึ้น svg> สามารถใช้เป็นรูปแบบพื้นฐานได้ *ใช้ xlink:href หน้านี้สามารถเข้าถึงได้ผ่าน URL ต่อไปนี้: */svg คุณจะสามารถสร้างจุดที่คลิกได้บน SVG โดยทำเช่นนั้น อินเทอร์เฟซผู้ใช้สามารถเข้าถึงได้โดยคลิกสองครั้งที่จุดหนึ่ง การโต้ตอบแบบ SVG มีประโยชน์อย่างไร แอนิเมชั่นที่หลากหลายสามารถโต้ตอบได้ในขณะที่ผู้ใช้เป็นผู้เริ่มต้น เมื่อผู้ใช้คลิกที่ภาพ SVG จะสร้างภาพเคลื่อนไหวที่ดูเหมือนเรียลไทม์ วิธีที่สามในการทำให้เว็บไซต์ของคุณปรากฏแบบโต้ตอบคือการใช้ กราฟิก SVG แบบโต้ตอบ ซึ่งสามารถใช้เพื่อเพิ่มภาพลวงตาของการโต้ตอบแบบเรียลไทม์ระหว่างผู้ใช้และไซต์ หากต้องการสร้างภาพ SVG แบบโต้ตอบ ให้ใช้แท็ก svg> ก่อน จากนั้นคุณต้องรวม *svg ในขั้นตอนนี้ คุณต้องระบุแอตทริบิวต์ของภาพเคลื่อนไหวeaseOut หน้าเว็บของคุณจะมีลักษณะเหมือนกับที่แสดงในการสาธิตทุกประการ หากตั้งค่าทุกอย่างถูกต้อง มีหลายสิ่งที่ควรทราบในขณะที่ดูการสาธิตนี้ ในการเริ่มต้น แท็ก svg> ต้องตามด้วยรูปภาพ องค์ประกอบที่สองที่จะเพิ่มคือแท็ก HTML 'svg' ภายในองค์ประกอบเนื้อหา
ทำไมคุณควรใช้ Svg
XML และรูปภาพเวกเตอร์ใช้ใน รูปแบบ SVG ซึ่งหมายความว่าสามารถปรับขนาดใหม่ได้โดยไม่ทำให้คุณภาพลดลงและไม่ขึ้นอยู่กับความละเอียด สามารถใช้ CSS และ/หรือ JavaScript เพื่อจัดการและทำให้ SVG เคลื่อนไหวได้อย่างง่ายดาย ด้วยเหตุนี้ การใช้ SVG จึงส่งผลให้เวลาในการโหลดหน้าเว็บเร็วขึ้น (แทนที่จะเป็น JPG, JPEG และ PNG) สามารถเพิ่ม JavaScript ที่ใดก็ได้ในเอกสาร SVG ระหว่างแท็กเปิดและแท็กปิด ขอแนะนำให้วางสคริปต์ไว้ท้ายเอกสารเพื่อป้องกันการบล็อกและอนุญาตให้เข้าถึง DOM ได้อย่างเต็มที่ หากคุณต้องการเขียนภาพ SVG ลงในเอกสาร HTML โดยตรง คุณสามารถทำได้โดยใช้ *svg โค้ดที่เปิดภาพ SVG ในโค้ด VS หรือ IDE ที่คุณต้องการ คัดลอกและวางลงในองค์ประกอบเนื้อหาของ HTML เอกสารที่จำเป็น หากทุกอย่างราบรื่น การสาธิตด้านล่างควรมีลักษณะเหมือนกัน