偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

一篇文章帶你了解SVG Javascript腳本

開發(fā) 前端
使用JavaScript,可以編寫SVG腳本。通過腳本編寫,可以修改SVG元素,為其設(shè)置動畫或偵聽形狀上的鼠標(biāo)事件。

[[359424]]

使用JavaScript,可以編寫SVG腳本。通過腳本編寫,可以修改SVG元素,為其設(shè)置動畫或偵聽形狀上的鼠標(biāo)事件。

當(dāng)SVG嵌入HTML頁面中時(shí),可以在JavaScript中使用SVG元素,可以使用JavaScript編寫SVG腳本。通過編寫腳本,可以修改SVG元素,設(shè)置它們的動畫,或者監(jiān)聽形狀上的鼠標(biāo)事件。

當(dāng)SVG嵌入到HTML頁面中時(shí),可以在JavaScript中使用SVG元素,就像它們是HTML元素一樣。JavaScript看起來是一樣的。

一、SVG腳本示例

案例

單擊按鈕時(shí),更改SVG矩形的尺寸。

  1. <!DOCTYPE html> 
  2. <html> 
  3.   <head> 
  4.     <meta charset="utf-8"
  5.     <title>項(xiàng)目</title> 
  6.   </head> 
  7.   <body style="background-color: aqua;"
  8.     <svg width="500" height="100"
  9.       <rect id="rect1" x="10" y="10" width="50" height="80" style="stroke:#000000; fill:none;" /> 
  10.     </svg> 
  11.     <input id="button1" type="button" value="Change Dimensions" onclick="changeDimensions()" /> 
  12.  
  13.     <script> 
  14.       function changeDimensions() { 
  15.         document.getElementById("rect1").setAttribute("width""100"); 
  16.       } 
  17. </script> 
  18.   </body> 
  19. </html> 

運(yùn)行效果:


二、通過ID獲取SVG元素的引用

可以使用document.getElementById() 函數(shù)獲得對SVG形狀的引用。

:

  1. var svgElement = document.getElementById("rect1"); 

此示例獲取對ID為rect1的SVG元素的引用(ID在SVG元素的id屬性中指定)。

1. 更改屬性值

一旦獲得了SVG元素的引用,就可以使用setAttribute()函數(shù)更改其屬性。

  1. var svgElement = document.getElementById("rect1"); 
  2. svgElement.setAttribute("width""100"); 

解析:

設(shè)置選定的SVG元素的width屬性??梢允褂胹etAttribute()函數(shù)設(shè)置任何其他屬性,包括 style屬性。還可以使用getAttribute() 函數(shù)獲取屬性的值。

  1. var svgElement = document.getElementById("rect1"); 
  2. var width = svgElement.getAttribute("width"); 

2. 更改CSS屬性

通過SVG元素的style屬性引用給定的CSS屬性,可以更改SVG元素的CSS屬性。

下面是一個(gè)設(shè)置stroke CSS屬性的示例:

  1. var svgElement = document.getElementById("rect1"); 
  2.  
  3. svgElement.style.stroke = "#ff0000"

也可以通過這種方式設(shè)置任何其他CSS屬性。只需將其名稱放在svgElement.style. 上面第二行的后面,然后將其設(shè)置為某種值即可。

還可以通過style屬性讀取CSS屬性的值。

讀取stroke CSS屬性的值。

  1. var svgElement = document.getElementById("rect1"); 
  2.  
  3. var stroke = svgElement.style.stroke; 

解析

名稱中包含短劃線的CSS屬性名稱(例如stroke-width)需要通過['']構(gòu)造進(jìn)行引用。這樣做是因?yàn)閹в卸虅澗€的屬性名稱在JavaScript中無效。

因此你不能寫。

  1. element.style.stroke-width 

相反,你必須寫。

  1. element.style['stroke-width'

這樣,還可以使用名稱中的破折號來引用CSS屬性。

三、事件監(jiān)聽器

可以根據(jù)需要直接在SVG中將事件監(jiān)聽器添加到SVG形狀中。就像使用HTML元素一樣進(jìn)行操作。

這是一個(gè)添加onmouseover 和 onmouseout事件監(jiān)聽器。

  1. <svg width="500" height="100"
  2.       <rect x="10" y="10" width="100" height="75" style="stroke: #000000; fill: #eeeeee;" onmouseover="this.style.stroke = '#ff0000'; this.style['stroke-width'] = 5;" 
  3.        onmouseout="this.style.stroke = '#000000'; this.style['stroke-width'] = 1;" /> 
  4. </svg> 

此示例在鼠標(biāo)懸停在矩形上時(shí)更改筆觸顏色和筆觸寬度,并在鼠標(biāo)離開矩形時(shí)重置筆觸顏色和筆觸寬度。可以嘗試下面的示例。嘗試將鼠標(biāo)移到形狀上,然后再次移出,以查看事件監(jiān)聽器的效果。


還可以使用addEventListener() 函數(shù)將事件監(jiān)聽器附加到SVG元素。

  1. var svgElement = document.getElementById("rect1"); 
  2. svgElement.addEventListener("mouseover", mouseOver); 
  3.  
  4.  
  5. function mouseOver() { 
  6.     alert("event fired!"); 

此示例將名為MouseOver的事件監(jiān)聽器函數(shù)添加到MouseOver事件。這意味著,只要用戶將鼠標(biāo)懸停在SVG元素上,就會調(diào)用事件監(jiān)聽器函數(shù)。


四、總結(jié)

本文基于SVG基礎(chǔ),介紹了SVG中 javascript腳本的應(yīng)用。通過ID獲取對SVG元素的引用,通過改變屬性值,改變CSSS屬性每一個(gè)知識點(diǎn)都通過項(xiàng)目進(jìn)行詳細(xì)的講解。最后通過一個(gè)小項(xiàng)目,介紹了事件監(jiān)聽器的應(yīng)用。

歡迎大家積極嘗試,有時(shí)候看到別人實(shí)現(xiàn)起來很簡單,但是到自己動手實(shí)現(xiàn)的時(shí)候,總會有各種各樣的問題,切勿眼高手低,勤動手,才可以理解的更加深刻。

 

責(zé)任編輯:姜華 來源: 前端進(jìn)階學(xué)習(xí)交流
相關(guān)推薦

2022-05-13 16:21:38

javascrip腳本SVG

2020-12-08 08:09:49

SVG圖標(biāo)Web

2021-02-26 20:01:57

SVG濾鏡元素

2021-01-01 09:18:48

SVG圖像元素

2020-12-29 09:39:38

元素屬性定位

2021-02-23 06:51:16

SVGstrokeHtml基礎(chǔ)

2020-12-25 09:42:51

SVGtspanSVG基礎(chǔ)

2021-01-04 10:14:42

SVG標(biāo)簽元素

2020-12-15 08:15:34

SVG元素路徑

2021-02-05 18:36:15

SVG形狀屬性

2021-03-26 09:57:51

SVGHtml基礎(chǔ)SVG圖像

2023-09-06 14:57:46

JavaScript編程語言

2021-05-18 08:30:42

JavaScript 前端JavaScript時(shí)

2021-06-24 09:05:08

JavaScript日期前端

2021-01-26 23:46:32

JavaScript數(shù)據(jù)結(jié)構(gòu)前端

2021-03-05 18:04:15

JavaScript循環(huán)代碼

2021-03-09 14:04:01

JavaScriptCookie數(shù)據(jù)

2024-04-19 14:23:52

SwitchJavaScript開發(fā)

2023-07-30 15:18:54

JavaScript屬性

2024-01-30 13:47:45

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號