成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁(yè) > 知識(shí)庫(kù) > HTML5之SVG 2D入門(mén)12—SVG DOM及DOM操作介紹

HTML5之SVG 2D入門(mén)12—SVG DOM及DOM操作介紹

熱門(mén)標(biāo)簽:400開(kāi)頭的電話好申請(qǐng)不 咸陽(yáng)穩(wěn)定外呼系統(tǒng)軟件 怎么做百度地圖標(biāo)注 地圖標(biāo)注柱狀圖 智能芯電話機(jī)器人 百度地圖標(biāo)注為什么總是封號(hào) 四川移動(dòng)電銷外呼客戶管理系統(tǒng) 小朱地圖標(biāo)注 臨海地圖標(biāo)注app
使用腳本可以很方便的完成各種復(fù)雜的任務(wù),也是完成動(dòng)畫(huà)和交互的一種主流方式。由于SVG是html的元素,所以支持普通的DOM操作,又由于SVG本質(zhì)上是xml文檔,所以也有一種特殊的DOM操作,大多稱之為SVG DOM。當(dāng)然了,由于目前IE不支持SVG,開(kāi)發(fā)基于IE的SVG頁(yè)面需要采用不同的方式。這部分的知識(shí)大家其實(shí)都很熟悉,下面只是簡(jiǎn)單的看一下。

HTML頁(yè)面中的DOM操作
DOM大家應(yīng)該很熟悉了,這里先看一個(gè)小例子:

復(fù)制代碼
代碼如下:

<head>
<style>
#svgContainer {
width: 400px;
height: 400px;
background-color: #a0a0a0;
}
</style>
<script>
function CreateSVG () {
var xmlns = "http://www.w3.org/2000/svg";
var boxWidth = 300;
var boxHeight = 300;
var svgElem = document.createElementNS (xmlns, "svg");
svgElem.setAttributeNS (null, "viewBox", "0 0 " + boxWidth + " " + boxHeight);
svgElem.setAttributeNS (null, "width", boxWidth);
svgElem.setAttributeNS (null, "height", boxHeight);
svgElem.style.display = "block";
var g = document.createElementNS (xmlns, "g");
svgElem.appendChild (g);
g.setAttributeNS (null, 'transform', 'matrix(1,0,0,-1,0,300)');
// draw linear gradient
var defs = document.createElementNS (xmlns, "defs");
var grad = document.createElementNS (xmlns, "linearGradient");
grad.setAttributeNS (null, "id", "gradient");
grad.setAttributeNS (null, "x1", "0%");
grad.setAttributeNS (null, "x2", "0%");
grad.setAttributeNS (null, "y1", "100%");
grad.setAttributeNS (null, "y2", "0%");
var stopTop = document.createElementNS (xmlns, "stop");
stopTop.setAttributeNS (null, "offset", "0%");
stopTop.setAttributeNS (null, "stop-color", "#ff0000");
grad.appendChild (stopTop);
var stopBottom = document.createElementNS (xmlns, "stop");
stopBottom.setAttributeNS (null, "offset", "100%");
stopBottom.setAttributeNS (null, "stop-color", "#0000ff");
grad.appendChild (stopBottom);
defs.appendChild (grad);
g.appendChild (defs);
// draw borders
var coords = "M 0, 0";
coords += " l 0, 300";
coords += " l 300, 0";
coords += " l 0, -300";
coords += " l -300, 0";
var path = document.createElementNS (xmlns, "path");
path.setAttributeNS (null, 'stroke', "#000000");
path.setAttributeNS (null, 'stroke-width', 10);
path.setAttributeNS (null, 'stroke-linejoin', "round");
path.setAttributeNS (null, 'd', coords);
path.setAttributeNS (null, 'fill', "url(#gradient)");
path.setAttributeNS (null, 'opacity', 1.0);
g.appendChild (path);
var svgContainer = document.getElementById ("svgContainer");
svgContainer.appendChild (svgElem);
}
</script>
</head>
<body onload="CreateSVG ()">
<div id="svgContainer"></div>
</body>

發(fā)現(xiàn)了沒(méi),與普通的html元素的DOM操作完全一樣:
選擇元素:document.getElementById
創(chuàng)建元素:document.createElementNS
創(chuàng)建子元素的另外一種方式:element.createChildNS
添加元素:node.appendChild
設(shè)置元素的屬性:element.setAttributeNS/element.setAttribute
除了上面這幾個(gè)操作,下面的操作和屬性也很常見(jiàn):
獲取元素的屬性值: element.getAttributeNS/element.getAttribute
檢查元素是否存在某屬性:element.hasAttributeNS
移除元素的某屬性:element.removeAttributeNS
父元素、子元素和兄弟節(jié)點(diǎn):element.parentNode/element.firstChild/child.nextSibling
這些方法這里不再詳細(xì)介紹了;此外,DOM樹(shù)的節(jié)點(diǎn)結(jié)構(gòu),對(duì)象之間的繼承關(guān)系也都是差不多的,就不詳述了。需要的同學(xué)參看后面的DOM Core Object的文檔。
不過(guò),需要注意的是SVG本質(zhì)上是XML文檔,所以基本采用的DOM方法都是帶NS結(jié)尾的方式,來(lái)提供相關(guān)的namespace;如果創(chuàng)建元素時(shí)已經(jīng)提供了namespace,而且沒(méi)有多個(gè)namespace的問(wèn)題,那么設(shè)置相關(guān)屬性的時(shí)候,也可以選擇使用不帶NS的版本,比如直接使用element.setAttribute設(shè)置屬性值,但是總的來(lái)說(shuō),還是強(qiáng)烈推薦使用帶NS結(jié)尾的版本,因?yàn)檫@個(gè)版本總是工作正常的,即使是在多namespace的情況下。
SVG DOM
這個(gè)與標(biāo)準(zhǔn)的DOM有哪些不同,我也沒(méi)找到什么全面的資料,目前只知道對(duì)屬性的賦值方式是不同的。如果有了解這方面的同學(xué)還請(qǐng)吱一聲啊。
上面的例子中,我們使用element.setAttributeNS/element.setAttribute來(lái)給屬性賦值,在SVG DOM中,可以使用面向?qū)ο蟮姆绞?,通過(guò)訪問(wèn)點(diǎn)號(hào)來(lái)給對(duì)象的屬性賦值,比如下面是兩種方式的對(duì)比:
普通的DOM方式:

復(fù)制代碼
代碼如下:

element.setAttribute("x", "10");
element.setAttribute("y", "20");
element.setAttribute("width", "100%");
element.setAttribute("height", "2em");

而SVG DOM的方式:

復(fù)制代碼
代碼如下:

element.x.baseVal.value = 10;
element.y.baseVal.value = 20;
element.width.baseVal.newValueSpecifiedUnits(SVGLength.SVG_LENGTHTYPE_PERCENTAGE, 100);
element.height.baseVal.newValueSpecifiedUnits(SVGLength.SVG_LENGTHTYPE_EMS, 10);

DOM腳本屬于傳統(tǒng)的腳本,其特征是通過(guò)構(gòu)建“值字符串”來(lái)設(shè)置各個(gè)項(xiàng)。SVG DOM腳本樣式的優(yōu)點(diǎn)是,你不必構(gòu)建“值字符串”,所以性能優(yōu)于DOM腳本。

嵌入SVG的腳本
如果要在SVG內(nèi)部添加腳本,就需要使用script元素,這個(gè)前面已經(jīng)講過(guò)了,除了這一點(diǎn),基本上與把腳本放到外面的HTML中是一樣的??匆粋€(gè)例子:

復(fù)制代碼
代碼如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
</head>
<body>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="300" height="300">
<script type="text/ecmascript">
<![CDATA[
function showRectColor() {
alert(document.getElementById("myBlueRect").getAttributeNS(null,"fill"));
}
function showRectArea(evt) {
var width = parseFloat(evt.target.getAttributeNS(null,"width"));
var height = parseFloat(evt.target.getAttributeNS(null,"height"));
alert("The rectangle area is: " + (width * height));
}
function showRootChildrenNr() {
alert("Nr of Children: "+document.documentElement.childNodes.length);
}
]]>
</script>
<g id="firstGroup">
<rect id="myBlueRect" width="100" height="50" x="40" y="20" fill="blue" onclick="showRectArea(evt)"/>
<text x="40" y="100" onclick="showRectColor()">Click on this text to show rectangle color.</text>
<text x="40" y="130">Click on rectangle to show rectangle area.</text>
<text x="40" y="160" onclick="showRootChildrenNr()">Click on this text to show the number of child
<tspan x="40" dy="20">elements of the root element.</tspan></text>
</g>
</svg>
</body>
</html>

在這個(gè)例子中,列舉了常見(jiàn)的獲取DOM對(duì)象的方式
1. 通過(guò)document.getElementById或者document.getElementByClassName之類的方法獲取對(duì)象;
2. 通過(guò)document.documentElement或者document.rootElement獲取document對(duì)象;
3. 通過(guò)事件參數(shù)evt.target獲取產(chǎn)生事件的對(duì)象。這種方式的優(yōu)點(diǎn)就是不使用id就可以獲取到產(chǎn)生事件的對(duì)象。
其余的腳本基本和普通的DOM是一樣的。

實(shí)用參考:
腳本索引:http://msdn.microsoft.com/zh-cn/library/ff971910(v=vs.85).aspx
開(kāi)發(fā)中心:https://developer.mozilla.org/en/SVG
熱門(mén)參考:http://www.chinasvg.com/
官方文檔:http://www.w3.org/TR/SVG11/
DOM Core Object API:http://reference.sitepoint.com/javascript/Document
SVG DOM常用屬性和方法:http://riso.iteye.com/blog/393454, http://riso.iteye.com/blog/393459

標(biāo)簽:陜西 黃石 公主嶺 平頂山 南平 黃石 山南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《HTML5之SVG 2D入門(mén)12—SVG DOM及DOM操作介紹》,本文關(guān)鍵詞  HTML5,之,SVG,入門(mén),DOM,及,操作,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《HTML5之SVG 2D入門(mén)12—SVG DOM及DOM操作介紹》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于HTML5之SVG 2D入門(mén)12—SVG DOM及DOM操作介紹的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    伊人伊成久久人综合网小说| 最新av免费看| 国产l精品国产亚洲区久久| 性欧美xxxx大乳国产app| 成人观看免费完整观看| 18禁裸乳无遮挡啪啪无码免费| 男女视频在线观看| 天堂av免费在线观看| 亚洲精选免费视频| 114国产精品久久免费观看| 国产精品系列视频| 粗大黑人巨茎大战欧美成人| 国产最新精品免费| 久久久久久久久久久久久久久久久久| 午夜成人亚洲理伦片在线观看| 成 人免费视频播放| 麻豆一区在线观看| 国产视频一区二区| 六月丁香婷婷在线| 极品少妇xxxx精品少妇| 日韩伦理精品| 欧洲在线免费视频| 在线观看91视频| 日日摸夜夜添夜夜添精品视频| 美女亚洲精品| 日韩精品一区二区av| 亚洲不卡中文字幕无码| 欧美日韩在线免费观看视频| 九色porny自拍视频在线播放| 久久亚洲精选| **日韩最新| 九九热在线精品视频| 欧美亚洲日本网站| 日韩在线中文字幕视频| 亚洲 欧美 日韩 综合| 四虎精品成人免费观看| 久久全球大尺度高清视频| 久久精品国产亚洲av无码娇色| 日韩av不卡在线| 中文字幕一区二区三区在线播放| 97超碰免费观看| 91高清视频在线免费观看| 天堂va蜜桃一区二区三区漫画版| 青青草视频免费在线观看| 400部精品国偷自产在线观看| 亚洲爱情岛论坛永久| 天天操天天操一操| 国产日韩精品一区| 欧美极品少妇xxxxⅹ高跟鞋| 手机看片福利视频| 日韩a在线播放| 午夜羞羞小视频在线观看| 1769国产精品| 亚洲欧洲日本mm| 中文字幕有码无码人妻av蜜桃| 亚洲va韩国va欧美va| 黄网址在线播放免费| wwwwxxxx在线观看| 亚洲电影免费| 久久电影网站中文字幕| 欧美xxx视频| 丝袜亚洲另类丝袜在线| 欧美精品一级二级| 无码无遮挡又大又爽又黄的视频| 99精品视频免费版的特色功能| 3p在线观看| 国产一级片在线播放| 97婷婷涩涩精品一区| 欧美人与动牲性行为| 日韩av免费| 日韩三级毛片| 伊人久久大香伊蕉在人线观看热v| 国产精品一二| 国产精品区在线观看| 亚洲一级黄色片| www.热久久| 亚洲色诱最新| 精品国偷自产一区二区三区| 中文字幕成人网| 国产精品一区二区3区| 精品久久久久久久久久岛国gif| 色综合天天做天天爱| 俄罗斯黄色一级片| 色爱区成人综合网| 成人性色生活片| 青草伊人久久| 欧美激情二区| 日韩国产激情| 97在线资源站| 国产精品对白交换视频| 国产精品美女一区| 亚洲不卡在线| 欧美一区二区三区另类| 5566成人精品视频免费| 亚洲免费影视第一页| 日日噜噜噜噜人人爽亚洲精品| 青青草成人av| 欧美国产日韩在线播放| 精品写真视频在线观看| 精品一区二区三区四区在线| 免费影院在线观看一区| 日本国产高清不卡| 婷婷久久综合九色综合绿巨人| 欧美日韩国产一区精品一区| 天天爱天天操天天干| 99精品中文字幕在线不卡| 另类av导航| 成年人精品视频| 在线看日韩欧美| 亚洲v国产v欧美v久久久久久| 超碰在线99| 99在线免费视频观看| 黄色在线观看视频网站| 91大学生片黄在线观看| 欧美另类69xxxxx| 色一区av在线| 欧美在线看片a免费观看| 午夜视频国产| 日韩不卡在线| 91精品1区| 亚洲天堂1区| 久久99热这里只有精品| 狠狠操综合网| 一区二区三区中文字幕在线观看| 久久精品视频一区二区| 日日噜噜噜夜夜爽爽| 99热在线观看免费| 国产91在线精品| 欧美日韩精品一区二区三区蜜桃| 99热这里只有精品5| 女人18毛片毛片毛片毛片区二| 天堂网中文字幕| 日韩精品极品| 国产一区三区三区| 91视频 - 88av| 免费av网址在线| 欧美一区二区三区粗大| 国产精品影院在线观看| 国产大屁股喷水视频在线观看| 国产一级免费av| 99久久综合色| 美女诱惑一区| 好吊色在线观看| 欧美亚洲第一区| 欧美a在线播放| 日日躁天天躁狠狠躁| 夜夜爽夜夜爽精品视频| 亚洲国产美国国产综合一区二区| 久久久国产一区二区三区| 久久青草福利网站| 日韩在线第二页| 黄色在线播放网站| 毛片大全在线观看| 欧美成人69av| 国产91在线|亚洲| 久久久福利影院| 色图欧美色图| 欧美日韩综合一区| 欧美亚洲自拍偷拍| 亚洲毛片亚洲毛片亚洲毛片| 欧美中文字幕视频| 国产精品天美传媒沈樵| 91tv亚洲精品香蕉国产一区7ujn| 青青草原av在线播放| 免费成人av在线| 国语精品免费视频| 无码日韩精品一区二区| 青青视频在线免费观看| 欧美激情va永久在线播放| 亚洲蜜桃视频| 日本视频在线观看免费| 久久夜色精品国产噜噜av| 亚洲日韩中文字幕一区| 视频在线观看91| 极品中文字幕一区| 亚洲素人在线| 久久久一区二区| 日韩中文字幕91| 国产精品劲爆视频| 国产精品久久久久久搜索| 国产精品视频一区在线观看| 国产毛片精品国产一区二区三区| 日韩av卡一卡二| 三级不卡在线观看| 国产女人18毛片水真多成人如厕| 亚洲图色一区二区三区| 日韩女优毛片在线| 国产亚洲一区二区三区| 国产美女被下药99| 视频一区二区视频| 91精品国产黑色紧身裤美女| 亚洲国产精品久久人人爱潘金莲| 国产一级理论片| 久久久久久激情| 欧美啪啪小视频| 国内精品伊人久久久久影院对白| 综合五月婷婷| 黄瓜视频网站| 天堂在线视频免费观看| 精人妻无码一区二区三区| 国产精品久久久久久超碰| www.久久东京| 欧美在线影院在线视频| 亚洲国产高清在线观看视频| 亚洲成人人体| 日韩在线观看免费| 精品国精品国产尤物美女| 91精品韩国| 亚洲欧美自拍一区| 欧美日韩中文在线视频| 色噜噜久久综合| 亚洲视频重口味| 另类欧美小说| 800av免费在线观看| 一级黄色片免费| 国产精品久久久久天堂| 黑森林国产精品av| 蜜臀av免费观看| 黄色小说综合网站| 国产精品久久观看| 久久男人天堂| 成网站在线观看人免费| 日韩欧美国产一区在线观看| 一区三区视频| 日韩一区欧美一区| 青青操在线视频观看| 男人的天堂亚洲在线| av素人天堂| 亚洲风情亚aⅴ在线发布| 精品福利一二区| 久久久精品一品道一区| av福利导福航大全在线| 色爱区综合激月婷婷| 国产91视觉| 亚洲第一成人在线| 先锋影音av在线资源| 国产卡一卡2卡三卡免费视频| 成人午夜电影在线观看| 国产成人一区在线| 欧美国产精品| 免费看国产片在线观看| 男人午夜视频在线观看| 一区二区小视频| 久久精品国产亚洲一区二区| 亚洲一区二区三区高清| 日韩av在线网站| 久操视频在线观看免费| 亚洲成人av免费在线观看| 夜夜嗨yeyeh| 一本色道**综合亚洲精品蜜桃冫| 污的视频网站| 蜜桃臀一区二区三区| 亚洲影院一区二区三区| 国产精品国内免费一区二区三区| 嫩草影院在线观看网站成人| 亚洲狼人精品一区二区三区| 国产成人va亚洲电影| 日韩小视频在线播放| 亚洲在线天堂| 熟妇人妻va精品中文字幕| 国产成人在线免费观看视频| 欧美男同性恋视频网站| 这里只有精品在线| 白浆爆出在线观看| 亚洲影院一区二区三区| 国产亚洲色婷婷久久99精品91| 欧美13一14另类| 成人aaaa免费全部观看| jizz在亚洲| 国产探花在线精品一区二区| 亚洲色成人www永久在线观看| 99久久99久久久精品齐齐| www.99久久热国产日韩欧美.com| 在线国产视频一区| 国产精品久久..4399| 亚洲免费观看在线观看| 99久久亚洲精品日本无码| 91视频播放| 成午夜精品一区二区三区软件| 精品美女视频| 免费成人黄色网址| 午夜精彩国产免费不卡不顿大片| 亚洲性视频网站| 欧美不卡一区二区| 制服丝袜中文字幕在线观看| 一区二区三区电影网| 亚洲日本精品一区| 丝袜脚交一区二区| 97**国产露脸精品国产| 亚洲图片小说视频| 成人午夜视屏| 欧美一级特黄视频| 色综合久久九月婷婷色综合| 超碰个人在线| chinese国产精品| 日韩亚洲欧美中文在线| 91蝌蚪|人| 欧美特黄色片| 国产精品一区二区三区av| 日本黄色特级片| 国产伦理久久久| 国产69精品久久久久999小说| 久久久人人爽| 噜噜噜91成人网| 91成人在线精品视频| 1234区在线观看视频免费| 免费观看日韩av| 日韩大片免费观看视频播放| 国产成人精品一区二三区| 亚洲免费999| 深夜国产在线播放| 国产精品亚洲欧美日韩一区在线| 中文在线中文资源| 国产精品久久精品日日| 久草在线视频精品| 欧美mv日韩mv国产网站| 26uuu国产日韩综合| 美女脱光内衣内裤视频久久影院| 欧美色999| 欧美性色黄大片| 久久国产精品区| 亚洲一区免费网站| 在线免费av导航| 久久99影院| 欧美aaaaaa午夜精品| 神马一区二区影院| 欧美videofree性高清杂交| 久久婷婷五月综合|