2015-06-29 57 views
2

爲什麼此路徑不可見?我使用javascript動態創建路徑,但路徑在屏幕上不可見,但它存在於DOM中。svg路徑不可見

var svg = document.getElementById('svg'); 
var path = document.createElementNS('http://www.w3.org/svg', 'path'); 
path.setAttribute('d', 'M100,100 L100,100'); 
path.setAttribute('style', 'stroke:black;fill:none;'); 
path.setAttribute('matrix', '1,0,0,1,100,100'); 
svg.appendChild(path); 

或者作爲JsFiddle

回答

6

你已經兩個獨立的問題

  1. SVG的命名空間實際上是http://www.w3.org/2000/svg

  2. 你不畫線是去任何地方,它從100,100開始並在相同的地方完成。

+1

正如羅伯特所說,你的路線開始並在同一點完成。 「M100,100 L100,100」意味着移動到100,100並畫一條線到100,100。也許你的意思是「M100,100 l100,100」 - 注意「L」是小寫字母,這意味着你將座標*相對*賦予當前位置。 –

2

您正在創建一個路徑,即具有在100,100一個起點(由M100,100表示),以及drawes「線」到完全相同的點(L100,100),這樣你就不會在畫一條線所有。

SVG路徑區分絕對座標和相對座標。用大寫字母表示絕對值。小寫字母用於相對座標值(相對於之前繪製或移動的座標)。

您應該使用小寫字母來表示相對路徑:M100,100 l100,100的意思是,從100,100開始,並繪製一條線,該點位於x方向100px和y方向100px。

或者你應該使用另一個座標wholeley,例如:M100,100 L110,110(從100,100開始並畫一條線到110,110)。