การสร้างภาพ SVG ด้วย JavaScript

เผยแพร่แล้ว: 2023-01-01

SVG หรือ Scalable Vector Graphics เป็นมาตรฐานเว็บที่สร้างขึ้นโดย World Wide Web Consortium (W3C) ในปี 1999 เป็นรูปแบบภาพเวกเตอร์ที่ใช้ XML สำหรับกราฟิกสองมิติพร้อมรองรับการโต้ตอบและภาพเคลื่อนไหว ข้อกำหนด SVG เป็นมาตรฐานเปิดที่อยู่ระหว่างการพัฒนาโดย W3C ตั้งแต่ปี 1999 JavaScript เป็นภาษาโปรแกรมที่ใช้กันอย่างแพร่หลายบนเว็บ สามารถใช้เพื่อสร้างหน้าเว็บแบบโต้ตอบและใช้งานโดยนักพัฒนาเว็บจำนวนมาก JavaScript สามารถใช้เพื่อสร้างภาพ SVG ภาพ SVG สามารถสร้างได้โดยใช้ ไลบรารี JavaScript D3.js D3.js เป็นไลบรารี JavaScript ที่ทำให้การสร้างภาพ SVG เป็นเรื่องง่าย ไลบรารีเป็นโอเพ่นซอร์สและพร้อมใช้งานบน GitHub นอกจากนี้ยังสามารถใช้ JavaScript เพื่อสร้างภาพ SVG โดยไม่ต้องใช้ไลบรารี โค้ด JavaScript สามารถเขียนในโปรแกรมแก้ไขข้อความ และสามารถสร้างภาพ SVG ในโปรแกรมแก้ไขกราฟิกแบบเวกเตอร์ เช่น Adobe Illustrator

SVG แสดงโดยใช้ Document Object Model (DOM) เช่นเดียวกับ HTML เนื่องจาก Javascript สามารถจัดการได้ง่าย จึงจัดการได้ง่าย ในหลักสูตรนี้ ฉันจะสาธิตวิธีใช้ SVG ทั้งแบบอินไลน์และภายนอก ตัวอย่างโค้ดในโพสต์นี้อยู่ที่ด้านบนสุดของหน้านี้ ซึ่งเข้าถึงได้ผ่านลิงก์ Github รหัสที่คุณใช้เพื่อเพิ่มองค์ประกอบ <script> ให้กับ SVG ภายนอกก็ใช้งานได้เช่นกัน เนื่องจาก SVG ไม่สามารถดู SVG อื่น ๆ บนหน้าได้ เนื่องจากไม่ได้ฝังอยู่ใน HTML เราจึงสามารถใช้สิ่งนี้เป็นเคล็ดลับได้ ดังนั้น หากคุณรวมโค้ดใน CDATA การแยกวิเคราะห์ XML จะถือว่าโค้ด JS เป็นส่วนหนึ่งของ XML

องค์ประกอบ HTML ถูกสร้างขึ้นและลบในลักษณะเดียวกับองค์ประกอบ HTML หากต้องการสร้างองค์ประกอบ ให้ใช้เมธอด createElementNS() ของเอกสาร ซึ่งส่งผ่านไปยัง เนมสเปซ SVG และชื่อแท็ก หากต้องการลบองค์ประกอบ เพียงวางฟิลด์ insertTextNode() ในองค์ประกอบข้อความ วิธีนี้ใช้ได้ผลเนื่องจากไม่สามารถคัดลอกและวางลงในเอกสารเดียวกันได้

คุณสามารถเปลี่ยน SVG ได้โดยใช้สคริปต์และ CSS

มีข้อได้เปรียบในการเข้าถึงมากกว่า SVG ในการวาดองค์ประกอบใน sva ต้องใช้สคริปต์ เราไม่ได้อยู่ที่นี่เพื่อให้คำตอบสำหรับแบบทดสอบในบทเรียน หากคุณอ่านหน้านี้ก่อนทำแบบทดสอบ คุณน่าจะแก้ปัญหาได้

การแทรกองค์ประกอบ img> ลงในหน้า HTML ทำได้ง่าย เพียงอ้างอิงองค์ประกอบในแอตทริบิวต์ src ตามที่คุณคาดหวัง หาก SVG ของคุณไม่มีอัตราส่วนกว้างยาว คุณต้องใส่แอตทริบิวต์ความสูงหรือความกว้าง ก่อนอื่นคุณต้องพิมพ์ URL ลงในเบราว์เซอร์ HTML เพื่อดูรูปภาพ

เว็บเบราว์เซอร์จำนวนมากอนุญาตให้คุณแสดง SVG เช่นเดียวกับ PNG, GIF และ JPG กราฟิกวาดโดยใช้ JavaScript ซึ่งดำเนินการโดยใช้องค์ประกอบผ้าใบ HTML HTML CanvasSVG เป็น Canvas แบบเวกเตอร์ที่ใช้ HTML ได้ซึ่งใช้รูปร่าง Canvas ประกอบด้วยวัตถุแบบแรสเตอร์ที่มีสามแถวสำหรับแต่ละส่วนของผืนผ้าใบ

เราสามารถใช้ Javascript ใน Svg ได้หรือไม่

เราสามารถใช้ Javascript ใน Svg ได้หรือไม่
ภาพโดย – thenewcode

โค้ด JavaScript สามารถเพิ่มที่ใดก็ได้ระหว่างแท็กเปิดและแท็กปิดของ เอกสาร SVG โดยทั่วไป ขอแนะนำให้วางสคริปต์ไว้ที่ส่วนท้ายของเอกสารเพื่อป้องกันไม่ให้ถูกบล็อกและเพื่อให้สคริปต์เข้าถึง DOM ได้อย่างสมบูรณ์

ขณะนี้มีรูปแบบไฟล์ a.svg ที่ช่วยให้ปรับขนาดรูปภาพและข้อมูลไดนามิกมากขึ้น XML ( มาร์กอัป) อธิบายวิธีการวาดและจัดแนวเหล่านี้ โดย XML เป็นวิธีที่ใช้มากที่สุด หากคุณวางมาร์กอัปลงในไฟล์ HTML มาร์กอัปนั้นจะปรากฏเป็นไอคอน ในกรณีนี้ ข้อมูลที่สร้างขึ้นจากตำแหน่งที่ตั้งระยะไกลสามารถแปลแบบไดนามิกเป็น ไอคอน SVG เมื่อสร้างหรือหลังจากสร้าง แท็ก XML สามารถสร้างและรวมเข้ากับองค์ประกอบ HTML คุณสามารถใช้องค์ประกอบ XML เพื่อสร้างไฟล์ main.js เพียงแค่ลากแท็กสมอเพื่อแทรกกราฟิกที่สร้างขึ้นทำให้เหมาะสำหรับการเลื่อน

เป็นผลให้สามารถจัดการ svg ได้ในลักษณะเดียวกับองค์ประกอบอื่นๆ สามารถเพิ่มสไตล์ คลาส และคุณลักษณะอื่นๆ ลงในแอปพลิเคชันของคุณได้ ไอคอนเหล่านี้ได้รับการเสริมไว้ล่วงหน้าในแต่ละโพสต์ ทำให้สามารถใช้เป็นลิงก์ยึดเพื่อเลื่อนโพสต์ได้อย่างราบรื่น

Svg นั้นยอดเยี่ยมสำหรับการออกแบบที่ตอบสนอง

รูปภาพในรูปแบบ XML จะไม่ลดลงเมื่อเวลาผ่านไป และปรับขนาดได้ง่ายเมื่อมีขนาดใหญ่กว่ารูปภาพต้นฉบับ ภาพเคลื่อนไหว CSS และ/หรือ JavaScript อย่างง่ายสามารถจัดการและเคลื่อนไหวได้อย่างง่ายดายโดยใช้ SVG กล่าวโดยสรุปคือ SVG เป็นทางเลือกที่ดีที่สุดสำหรับ JPG, JPEG และ PNG สำหรับการออกแบบที่ตอบสนอง เนื่องจากไม่ใช้พื้นที่หน้ามาก คุณสามารถรวมรูปภาพในเอกสาร HTML โดยใช้แท็ก *svg>*/svg> คุณสามารถทำได้โดยเปิดภาพ SVG ใน Visual Studio หรือ IDE ที่คุณต้องการ แล้วคัดลอกและวางโค้ดภายในองค์ประกอบ body> ของเอกสาร HTML ของคุณ คุณควรหลีกเลี่ยงการใช้ SVG ในเอกสาร HTML หากคุณกังวลเกี่ยวกับปัญหาบางประการ ข้อเสียข้อแรกของ SVG คือไม่รองรับภาพเคลื่อนไหวหรือความโปร่งใส ดังนั้นจึงอาจไม่ใช่แพลตฟอร์มที่ดีที่สุดสำหรับรูปภาพทั้งหมดของคุณ นอกจากนี้ เนื่องจาก SVG มีการใช้งานกันอย่างแพร่หลายน้อยกว่ารูปแบบทั่วไปเช่น PNG จึงอาจไม่เข้ากันได้กับเบราว์เซอร์และอุปกรณ์รุ่นเก่า สุดท้าย คุณอาจต้องอัปโหลดและแสดงภาพ SVG ของคุณในลักษณะอื่นสำหรับเว็บไซต์ของคุณ ข่าวดีก็คือสำหรับการออกแบบที่ปรับเปลี่ยนตามอุปกรณ์และภาพที่ไม่ต้องการภาพเคลื่อนไหวหรือความโปร่งใส SVG เป็นตัวเลือกที่ยอดเยี่ยม


Css สามารถนำไปใช้กับ Svg ได้หรือไม่?

กราฟิกแบบเวกเตอร์ที่ปรับขนาดได้ (SVG) ส่วนใหญ่ใช้ CSS แต่สามารถใช้แอตทริบิวต์บางอย่างเพื่อนำไปใช้ได้ แอตทริบิวต์การนำเสนอสามารถใช้เป็นคุณสมบัติ CSS สำหรับองค์ประกอบ SVG หรือเป็น องค์ประกอบสไตล์ SVG แอตทริบิวต์ที่สำคัญที่สุดคือแอตทริบิวต์ที่เปิดใช้งาน SVG เท่านั้น แต่แอตทริบิวต์อื่นๆ เช่น ขนาดหรือความทึบ ได้รับการแชร์ใน CSS แล้ว

คุณสามารถใช้แอตทริบิวต์การนำเสนอสำหรับคุณสมบัติ CSS และองค์ประกอบ SVG สามารถใช้คุณสมบัติการเติมใน CSS เพื่อเปลี่ยนสีขององค์ประกอบเป็นสีแดง เอฟเฟ็กต์ข้อความ การกำบัง การกรอง และฟิลเตอร์เป็นคุณสมบัติบางอย่างที่ใช้ร่วมกันระหว่าง CSS และ SVG องค์ประกอบบางอย่าง เช่น องค์ประกอบ SVG ไม่รองรับคุณสมบัติ CSS เดียวกันทั้งหมด จากผลของซอฟต์แวร์รุ่นล่าสุด คุณสมบัติทางเรขาคณิต เช่น rx และ ry ได้ถูกกำหนดไว้แล้ว สามารถใช้คุณสมบัติเรขาคณิตใน CSS ได้ในลักษณะเดียวกับที่แอตทริบิวต์การนำเสนอ เช่น สีเติม และเส้นขีด สามารถใช้ CSS เพื่อเปลี่ยนองค์ประกอบให้เป็นรูปร่างได้

นอกจากนี้ยังสามารถใช้ CSS เพื่อระบุความกว้างและความสูงขององค์ประกอบ >rect รูปร่างขององค์ประกอบถูกกำหนดโดยใช้คุณสมบัติ d เมื่อองค์ประกอบถูกคลิก ให้ใช้ a:active pseudo-class เพื่อแปลงรูปร่างเป็นสี่เหลี่ยม ซึ่งจะเปลี่ยนเป็นสีเติมขององค์ประกอบเมื่อคลิก เมื่อใช้ CSS คุณสามารถใช้การหน่วงเวลาของภาพเคลื่อนไหวเพื่อระบุคลาสของ your.shape ไม่จำเป็นต้องนำเทคนิคเหล่านี้ไปใช้ในการผลิตในทันที

SVG แม้จะมีความเรียบง่าย แต่ก็สามารถเคลื่อนไหวได้ด้วย CSS สามารถใช้ CSS เพื่อทำให้ SVG เคลื่อนไหวได้ ซึ่งหมายความว่าคุณสามารถสร้างแอนิเมชั่นสวยๆ ได้มากมาย อย่างไรก็ตาม มีเครื่องมืออื่น ๆ ในตลาดที่สามารถใช้จัดการงานแอนิเมชันได้ดีขึ้น การใช้ JavaScript คุณสามารถสร้างภาพเคลื่อนไหวได้ JavaScript เป็นภาษาโปรแกรมที่มีประสิทธิภาพที่ทำงานในภาพเคลื่อนไหวได้ดีกว่า CSS นอกจากนี้ คุณสามารถใช้เครื่องมือต่างๆ เช่น Greensock และ Animate.js เพื่อสร้างภาพเคลื่อนไหวขั้นสูง

ฉันควรใช้ Css หรือ Svg?

แม้ว่า CSS จะมีชุดตัวกรองที่สามารถใช้สร้างเอฟเฟกต์เฉพาะได้ แต่ตัวกรองในตัวของ SVG นั้นมีความหลากหลายมากกว่าและช่วยให้สามารถสร้างเอฟเฟกต์ที่ซับซ้อนมากขึ้นด้วย UI ที่น่าดึงดูดใจ เอฟเฟกต์เหนอะหนะ นอกจากจะเป็นหนึ่งในเอฟเฟกต์ฟิล เตอร์ SVG ที่น่าประทับใจ ที่สุด ยังใช้งานได้ดีเป็นฟิลเตอร์อีกด้วย

Svg ใน Css คืออะไร?

คำว่า SVG หมายถึงกราฟิกแบบเวกเตอร์ที่ปรับขนาดได้ มาตรฐาน SVG ช่วยให้สามารถสร้างกราฟิกแบบเวกเตอร์สำหรับเว็บได้ กราฟิกของ HTML ถูกกำหนดในรูปแบบ SVG ของ XML ทุกองค์ประกอบและแอตทริบิวต์ในไฟล์ SVG สามารถเคลื่อนไหวได้