我有說,在一個HTML頁面的JavaScript的一部分特定的屬性查找SVG元素:與使用JavaScript
function flashElements() {
var svg = document.getElementById("mysvg").getSVGDocument();
var all = svg.getElementsByTagName("flash");
for (var i=0, max=all.length; i < max; i++) {
if (all[i].flash === "on")
{
all[i].setAttributeNS(null, "fill", "lime");
}
}
}
與加載的SVG如下:
<object data="alpha.svg" type="image/svg+xml" id="mysvg" width="800" height="600"></object>
的想法是調用這在一個特定的觸發器上,如果任何SVG元素具有「flash」的特定屬性,那麼它們的fill屬性將改變顏色。當然,上述不起作用 - 它正在尋找元素,而不是屬性。那麼如何遍歷所有的SVG元素,尋找具有該特定屬性的任何東西?
的SVG有:
<polygon points="203,20 209,32 205,32 203,28" class="trackPlain" flash="on" />
<polygon points="205,32 209,32 217,48 213,48" class="trackPlain" flash="off" />
其實所有我想要做的是flash元素(開/關),但當然IE不支持動畫。
剛一說明:它是不好的創作實踐中使用非前綴的自定義屬性,你應該使用'定製:閃=「上」'或'數據-flash =「on」'以避免與未來的svg規格衝突。 '自定義'前綴只是一個例子,它可以是任何你定義的(見http://www.w3.org/TR/REC-xml-names/)。 –
好的,我真的好奇!謝謝你的提示。 – GeoffM