2016-05-12 39 views
0

我想在这里把这个代码(SVG组,形状等):把CreateElementNS在功能

var group = function(n){ 
 
\t n = document.createElementNS(svg, "g"); 
 
}

我这样做对吗?我也尝试过'Return n = doc ...',但这似乎也不起作用。

目前我只有这样的线条分配;

e.g1 = document.createElementNS(svg, "g"); 
 
\t t2 = "translate("+e.x+" "+e.y+"), rotate("+e.z+" "+0+" "+0+")"; 
 
\t e.g1.setAttributeNS(null, "transform", t2); 
 
\t e.g1.setAttributeNS(null,"fill", "url(#gradient)"); 
 
\t e.g1.setAttributeNS(null,"stroke", "none"); 
 
\t e.g1.setAttributeNS(null,"stroke-width", e.a*0.03); 
 
\t document.getElementById("mySVG").appendChild(e.g1);

宁愿它看起来更像是这个..

group(e.g1); 
 
\t t2 = "translate("+e.x+" "+e.y+"), rotate("+e.z+" "+0+" "+0+")"; 
 
\t transform(e.g1, t2); 
 
\t fill(e.g1, url(#gradient)); 
 
\t stroke(e.g1, #000); 
 
\t strokewidth(e.g1, (e.a*0.03)); 
 
    append(e.g1);

感谢,更短的代码是什么,我需要的!

回答

0

没有,这将无法正常工作。当你这样做:

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'); 

但我不知道为什么你会想这样做的:)

+0

感谢队友, 我对自己的技能水平太深了,但是像我这样的人快速进步。 – Chris