>如何使用 JavaScript 繪製可縮放矢量圖形 (SVG)

已發表: 2023-02-25

假設您想詳細了解如何使用 JavaScript 繪製可縮放矢量圖形或 SVG,這裡有一種方法可以做到。 SVG 是一種基於 XML 的矢量圖像格式,用於支持交互性和動畫的二維圖形。 SVG 規範是萬維網聯盟 (W3C) 自 1999 年以來開發的開放標準。使用 JavaScript,您可以使用文檔對像模型 (DOM) 訪問和操作 SVG 文檔的元素。 例如,您可以添加或刪除元素、更改它們的屬性或為它們設置動畫。 下面是一個基本示例,說明如何使用一個圓形元素創建 SVG 文檔並將其添加到 DOM。 首先,創建一個帶有元素的 HTML 文檔並設置其寬度和高度屬性。 接下來,創建一個元素並設置其 cx 和 cy 屬性以定義圓心的 x 和 y 坐標。 然後,設置 r 屬性來定義圓的半徑。 最後,將元素添加到元素中。 用於存儲圖像和數據的 .svg 文件格式允許更動態的縮放。 XML 標記用於描述這些是如何繪製和對齊的,而不是簡單地描述路徑是如何繪製的。 當您將標記呈現到 HTML 文件中時,它將與圖標完全一樣。 如果要在呈現數據時將 SVG 圖標動態添加到來自遠程位置的數據,可以使用此方法。 可以創建和組合 XML 標籤,就像 HTML 元素一樣。 可以使用 XPath 函數創建 XML 文件的 main.js 文件。 我們將在圖形創建後放置錨標記,允許滾動功能運行。因此,之後任何元素都可以像處理任何其他元素一樣處理。 添加樣式、類和(最重要的)屬性有多種選擇。 這些圖標預先添加到每個帖子中,可以用作錨鏈接以平滑滾動。SVG 平台具有更多的可訪問性。 您必須安裝腳本才能使用 SVG 在屏幕上繪製元素。 現在不是檢查您的測驗是否已完成的時候。 您可以在參加測驗之前通讀頁面輕鬆解決它們。我們可以在 Svg 中使用 Javascript 嗎?圖片來源:https://iconscout.com 可以從開始和結束 svg> 標籤之間的任何位置將 JavaScript 添加到 SVG 文檔中。 腳本應放在文檔的末尾,以便可以在避免阻塞的情況下完全訪問它。可以使用文檔對像模型 (DOM) 以與 HTML 相同的方式查看 SVG。 因此,可以使用 Javascript 很容易地操作它們。 在本課程中,我將介紹如何使用內聯和外部 SVG。 代碼示例可在位於本文頂部的 GitHub 上找到。 如果您使用外部 SVG,則插入元素時無需使用相同的代碼。 因為 SVG 不能訪問頁面中嵌入的 HTML 文檔,所以我們可以用它來替換它上面的其他 SVG。 當你用 CDATA 包裝 JS 代碼時,XML 將其作為 XML 的一部分進行解析。在 HTML 中創建和刪除元素是相同的。 相關文檔的 createElementNS() 方法必須傳遞元素名稱和 SVG 命名空間,以便您創建元素。 如果要刪除一個元素,必須先使用 createTextNode() 創建一個單獨的文本節點,然後將其附加到文本元素。 它們不存在於同一個文檔中,因此可以很好地工作。Svg 的優點和缺點由於它們基於矢量的 XML 格式格式,SVG 不會降低分辨率或不依賴於分辨率,這使得它們易於調整大小。 CSS 和/或 JavaScript 可用於輕鬆操作和動畫 SVG。 因為 SVG 比 JPG、JPEG、PNG 和其他格式使用更少的內存和加載時間更少,所以它是響應式設計的理想選擇。 SVG 除了是一種通用的文件格式外,還支持動畫和透明度。 使用這種格式只有一個問題:它不像 PNG 等其他標準格式那樣廣泛使用,因此上傳到您的網站並正確顯示並不總是那麼簡單,而且它並不總是與舊瀏覽器兼容和設備。Svg 是否依賴於 Javascript?由於其原始性質,它具有極強的響應能力,但它缺乏文本渲染功能,並且與元素的任何交互都依賴於 JavaScript。 基於矢量的圖像可以在不引起模糊的情況下調整大小(儘管它確實需要壓縮)。 每個繪製的形狀都由 SVG 中的一個對象組成。Html To Svg Javascript 使用 JavaScript,可以將 HTML 轉換為 SVG。 這可以通過使用諸如 canvg 之類的庫來完成。 使用 canvg,可以從 HTML 頁面中解析和呈現 SVG 文檔。 這允許將矢量圖形與其他網絡技術集成。我們將介紹如何在本教程的頁面上顯示標量矢量圖形 (SVG)。 HTML 頁面可以具有 XML 方言,它以 HTML 圖像或 XML 聲明的形式顯示信息。 在本文中,我們將比較和對比用於插入和修改 HTML 元素的 JavaScript 語法與用於插入和修改 HTML 元素的 SVG 語法。 在開發我們的方法之前,我們將查看示例用例。 一個簡單的元素,例如 >div,應該能夠添加到 SVG 中。 createSVG 方法在以下示例中使用了兩次。 我們可以使用 JavaScript 和 CSS 以細粒度的方式使用 HTML 和 CSS 控制 SVG。我們使用的 document.createElementNS 方法由兩個參數組成:document.createElementNS 和 document.createElementNS。 用於指示要傳入的對象的一個變量是 o。 因此,為了找到大寫字母並將其替換為破折號 (-) 後跟一個小寫字母,我們使用正則表達式 /[AZ]/g,它使用駝峰式對象和破折號語法來查找大寫字母並替換它們帶破折號 (-)。 返回元素後,我們所要做的就是將其作為附加元素返回。Javascript 中的 Svg:您需要了解的知識如何在 JavaScript 中使用 SVG? 因為圖像的每個組件都可以用 CSS 設置樣式或用 JavaScript 編寫腳本,所以它們是一個很棒的樣式/腳本工具。 您如何在 HTML 中編寫 svg 代碼? 可以使用 svg>/svg> 標籤將圖像直接寫入 HTML 文檔。 如果您打算在 HTML 文檔中使用 SVG 圖像,則需要執行以下步驟:在 VS 代碼或首選 IDE 中打開圖像,複製代碼並將其粘貼到 body 元素中。 為什麼 HTML sva 仍在使用? 這花了一些時間,但 Silverlight 現在已在所有主要瀏覽器和設備中得到廣泛支持。 除了超小、可搜索、可修改和可修改之外,SVG 文件還超小、可搜索、可修改(通過代碼)和可擴展。 這些多功能設備可用於任何尺寸,並與 HTML 兼容(創建網站但不想編寫代碼),只需單擊圖像或內嵌即可。 您可以獲得免費的汽車入門套件。 像 SVG 這樣的 XML 應用程序可以使用 XML 1.0 以及 XML 命名空間。 當 SVG 內容包含在 HTML 文檔中時,HTML 語法可能適用但可能與 XML 不兼容。Svg Javascript 示例有許多將 JavaScript 與 SVG 結合使用的示例。 例如,您可以使用 JavaScript 動態更新 SVG 元素的位置、大小或其他屬性。 您還可以使用 JavaScript 為 SVG 元素設置動畫。可以使用稱為可縮放矢量圖形的技術拉伸矢量圖形。 可擴展標記語言 (XML) 是一種基於矢量的圖形所特有的圖像格式。 SVG 圖像可以在 CSS 和 HTML 中以多種方式使用。 我們將在本教程中學習六種不同的技術。 在本課中,我們將向您展示如何使用 sva 作為 CSS 背景。 在這種情況下,必須使用與 HTML 文檔相同的語法加載 .htaccess 文件。 但是,在這種情況下,我們使用 CSS 代替 HTML 來執行更多自定義操作。您還可以使用 HTML HTML 元素向網站添加圖像。 可以在所有支持可縮放矢量圖形 (SVG) 的瀏覽器中使用 >object> 選項。 在 HTML 和 CSS 中,語法 <embedsrc=happy.svg” /> 中的 HTML 元素可用於包含圖像。 大多數現代瀏覽器不再支持>瀏覽器插件,所以依賴>embed[/gt; 通常不是一個好主意。將圖像轉換為 Svg 以獲得更好質量的 Web 圖形瀏覽器。 Canvas.js 以前在 Chrome、Firefox 和 Opera 中可用,是最受歡迎的之一。在 Javascript 中動態創建 Svg 圖像使用 JavaScript,可以動態創建 SVG 圖像。 這可以通過創建一個新的 XMLHttpRequest() 對象並將 responseType 設置為“text/xml”來完成。 創建對像後,可以使用 open() 方法打開與外部 SVG 文件的連接。 onload 事件可用於執行解析 SVG 文件並創建 XMLDocument 對象的回調函數。 最後,可以使用createElementNS()方法來創建一個SVG圖像元素。本教程將教你如何使用sva製作動態元素。 MDN 文檔指出 http://www.w3.org/2000/svg 是 svg 文件的語法。 我們正在創建的元素——rect、text、circle 等等——必須對其名稱進行限定。 我們對此並不關心,因為可選的選項參數是無關緊要的。 什麼是表示屬性、CSS 和內聯樣式? 我們可以使用 GreenSock 工具選擇屬性或內聯樣式作為選項。 在現代瀏覽器中,CSS 可用於操作 cy、cy、r 等屬性。很可能,您會希望盡可能多地使用 CSS 屬性(樣式表或內聯樣式)。 在本文中,我將介紹如何使用 HTML、CSS 和表示屬性創建動態元素。 我們將使用一個變量來確定我們希望 svg 具有的矩形數量、寬度和高度。 即將推出的軟件版本(稱為 SVG2)中將包含新的幾何屬性,但我不能對它們說太多,因為它們尚未發布。 我們希望看到這些元素的作用,以便我們可以衡量它們的效率。 剪輯路徑工具可用於將動態元素添加到 SVG 的根。 在此演示中,我們將創建一個描邊版本的基色圓圈,並將它們添加到一個組中,以便我們立即顯示它們。每個裁剪矩形的補間值為 100,並將放置在裁剪圓的下方。 當播放頭反轉時,它會導致補間也反轉。 因為我們在補間開始時單擊,所以此時什麼也沒有發生。 然後將補間轉移到我們的動畫中。 為了演示數字量規的構造方式,我使用了波浪形內環和外環。 內層循環通過調用 makeLine() 函數創建五條垂直線,而外層循環通過調用 makeNumber() 函數在較高的刻度線上方創建數字。 它允許您即時調整內容,而不必恢復到矢量軟件。創建 Svg 視口視口是一個矩形區域,可以在其中查看 SVG 文檔。 將 svg> 元素的 viewBox 屬性設置為包含四個數字的列表:min-x、min-y、min-width 和 min-height。 SVG 視口的位置和尺寸由用戶空間中定義的 viewBox 屬性確定。 viewBox 屬性表示四個數字:min-x、min-y、寬度和高度。 視口由第一個數字中的 min-x 表示。 第二個數字指定視口的最頂端位置,min-y。 視口在用戶空間中的寬度由第三個數字 width 定義。 第四個值 height 定義視口在用戶空間中的高度。 可以通過首先創建具有 viewBox 屬性的元素,然後將其值設置為視口的值來繪製視口。 然後您可以使用 svg> 元素的 draw() 方法來繪製對象。 將 svg> 元素的 viewBox 屬性設置為四個數字:min-x、min-y、min-z 和 height-x。Svg 元素 SVG 元素是可以添加到 HTML5 文檔中的圖形元素。 它們可用於創建線條、形狀和圖像,並可使用 CSS 進行自定義。