动态添加一个完整的svg形状(使用纯Javascript)
Dynamically add a full svg shape (with pure Javascript)
我想用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(输出):
<svg width="200" height="200">
<path d="M100,0 L200,100 100,200 0,100Z" fill="red"/>
</svg>
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);
使用createElementNS
而不是createElement
。
相关文章:
- D3在一个调用中绘制不同的SVG形状,没有可见性
- SVG使用Javascript将形状平滑地变形为其他预定义的形状
- 将CreateElementNS放入函数(SVG组、形状等)中
- 将形状/掩码动态添加到内联svg中
- 以编程方式确定由 SVG 路径生成的形状
- 更新链接形状时,Safari中的SVG clipPath与USE断开
- 垂直反转拉斐尔 SVG 形状不起作用
- 微调可拖动 SVG 形状的位置,而无需更改 X
- 垂直翻转拉斐尔 SVG 形状
- 如何限制可拖动 SVG 形状的范围
- 通过可拖动的 SVG 形状设置 HTML 输入值 ?(或画布)
- 如何将 SVG 形状替换为图像
- D3JS SVG 文本和形状在同一行上
- D3JS 或 SNAPSVG 拖放仅限于加载的 svg 形状区域
- 从 SVG 加载的结构 JS 形状的位置不正确
- 删除 SVG 形状元素
- 如何通过按 JavaScript/SVG 中的按钮将形状的半径设置为更大或更小
- 动态添加一个完整的svg形状(使用纯Javascript)
- 逐节点设置SVG基本形状
- 如何在 Snap 中变换形状.svg而不将变换应用于其蒙版