将CreateElementNS放入函数(SVG组、形状等)中
Putting CreateElementNS in a function (SVG Groups, shapes etc)
我正试图将此代码转到此处:
var group = function(n){
n = document.createElementNS(svg, "g" );
}
我做得对吗?我也尝试过"Return n=doc…"但这似乎也不起作用。
现在我只有这样的台词;
e.g1 = document.createElementNS(svg, "g" );
t2 = "translate("+e.x+" "+e.y+"), rotate("+e.z+" "+0+" "+0+")";
e.g1.setAttributeNS(null, "transform", t2);
e.g1.setAttributeNS(null,"fill", "url(#gradient)");
e.g1.setAttributeNS(null,"stroke", "none");
e.g1.setAttributeNS(null,"stroke-width", e.a*0.03);
document.getElementById("mySVG").appendChild(e.g1);
我希望它看起来更像这个。。
group(e.g1);
t2 = "translate("+e.x+" "+e.y+"), rotate("+e.z+" "+0+" "+0+")";
transform(e.g1, t2);
fill(e.g1, url(#gradient));
stroke(e.g1, #000);
strokewidth(e.g1, (e.a*0.03));
append(e.g1);
谢谢,我需要更短的代码!
不,这行不通。当你这样做:
var group = function(n){
n = document.createElementNS(svg, "g" );
}
您只是在修改传入的n的值。这些更改纯粹是函数的本地更改,不会返回给调用方。
你需要做:
var group = function() {
return document.createElementNS(svg, "g" );
}
e.g1 = group();
或者,我想你可以这样做:
var group = function(obj, property){
obj[property] = document.createElementNS(svg, "g" );
}
group(e, 'g1');
但我不知道你为什么要这样做:)
相关文章:
- D3在一个调用中绘制不同的SVG形状,没有可见性
- 如何使用javascript从主svg对象动态创建svg视图框
- 如何更改<svg>标记为<img>用js标记
- 锚点元素不't使用svg时,请打开EDGE上的href
- 带有填充属性的SVG矩形显示在包含元素的上方插入框阴影
- 使用onclick绘制SVG路径
- SVG/JavaScript:尝试选择和更改多边形点
- 顺时针旋转Svg元件
- 禁用SVG拖动
- 在select元素中显示highchart dashstyle(svg)
- 在D3.js中,有没有任何方法可以将x和y方向上的滚动事件绑定到平移svg
- 缩放Raphael/SVG容器以适应所有内容
- JavaScript-动态SVG-onload属性-未触发事件
- 设置动画时,SVG/Raphael大圆圈会变形
- 使用SVG和JavaScript创建波浪动画
- Canvas+svg路径动画,在路径中的特定点暂停一段时间,然后继续
- D3.js生成有效的SVG,但不显示任何内容
- 将CreateElementNS放入函数(SVG组、形状等)中
- SVG createElementNS 'use' 是可能的
- createElementNS是否始终如一地离线工作?特别是使用 SVG 命名空间