在我的页面中,我有一个带有 3 个路径的 SVG 图像,然后在另一侧有 3 个按钮。单击每个按钮时,我想将模式应用于我的 SVG 路径。
我没有完全运行的脚本。它更新了 SVG 结构,添加了所有必要的代码,但结果丢失了图像。
更新这里的演示:http: //jsfiddle.net/uncoke/756DS/
如果在调试时我复制新的 SVG 代码并在新窗口中打开它,我会看到我想要的结果。但在现场......它不会加载 img 模式。这是我脚本的核心:
var svgns = "http://www.w3.org/2000/svg"; var img = document.createElementNS(svgns,'image'); img.setAttributeNS(null,'height','536'); img.setAttributeNS(null,'width','536'); img.setAttributeNS('http://www.w3.org/1999/xlink','xlink:href',pattern_url); img.setAttributeNS(null,'x','-81'); img.setAttributeNS(null,'y','-81'); img.setAttributeNS(null, 'visibility', 'visible'); def= document.createElementNS(svgns,'defs'); pattern = document.createElementNS(svgns,'pattern'); pattern.setAttributeNS(null,'id','img_pattern'); pattern.setAttributeNS(null,'patternUnits','userSpaceOnUse'); pattern.setAttributeNS(null,'width','600'); pattern.setAttributeNS(null,'height','450'); pattern.appendChild(img) def.appendChild(pattern) side_1 = document.getElementById('side_1'); side_1.setAttributeNS(null,"fill","url(#img_pattern)") side_2 = document.getElementById('side_2'); side_2.setAttributeNS(null,"fill","green") side_3 = document.getElementById('side_3'); side_3.setAttributeNS(null,"fill","url(#img_pattern)")
在这个测试中,只有“填充”、“绿色”有效。
你能帮帮我吗?