当前位置:  开发笔记 > 编程语言 > 正文

动态添加完整的svg形状(使用纯Javascript)

如何解决《动态添加完整的svg形状(使用纯Javascript)》经验,为你挑选了1个好方法。

我想通过使用JS创建的SVG中的路径绘制一个正方形.但是浏览器不接受这个:

使用Javascript:

var svg = document.createElement('svg');
svg.width = "200";
svg.height = "200";
document.body.appendChild(svg);

var path = document.createElement('path');
path.setAttribute('d','M100,0 L200,100 100,200 0,100Z');
path.setAttribute('fill','red');
svg.appendChild(path);

HTML(输出):


  

Robert Longs.. 10

createElement只能用于创建html元素.要创建SVG元素,必须使用createElementNS并提供SVG名称空间作为第一个参数.

document.body.appendChild('svg'); 想要添加svg元素而不是包含文本'svg'的字符串,可能是一个拼写错误

var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
svg.setAttribute('width','200');
svg.setAttribute('height','200');
document.body.appendChild(svg);

var path = document.createElementNS('http://www.w3.org/2000/svg', 'path');
path.setAttribute('d','M100,0 L200,100 100,200 0,100Z');
path.setAttribute('fill','red');
svg.appendChild(path);



1> Robert Longs..:

createElement只能用于创建html元素.要创建SVG元素,必须使用createElementNS并提供SVG名称空间作为第一个参数.

document.body.appendChild('svg'); 想要添加svg元素而不是包含文本'svg'的字符串,可能是一个拼写错误

var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
svg.setAttribute('width','200');
svg.setAttribute('height','200');
document.body.appendChild(svg);

var path = document.createElementNS('http://www.w3.org/2000/svg', 'path');
path.setAttribute('d','M100,0 L200,100 100,200 0,100Z');
path.setAttribute('fill','red');
svg.appendChild(path);
推荐阅读
跟我搞对象吧
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有