2016-03-26 14 views
0

Ben saf JavaScript bir svg elemanı inşa ediyorum, ama bunun resim eklemek başaramasanız:Javascript'te svg öğesine nasıl resim eklenir?

var svgns = "http://www.w3.org/2000/svg"; 

var svgElement = document.createElementNS(svgns, "svg"); 
svgElement.setAttributeNS(null, "width", 100); 
svgElement.setAttributeNS(null, "height", 100); 

var shape = document.createElementNS(svgns, "circle"); 
shape.setAttributeNS(null, "cx", 25); 
shape.setAttributeNS(null, "cy", 25); 
shape.setAttributeNS(null, "r", 20); 
shape.setAttributeNS(null, "fill", "green"); 

var pngImage = document.createElementNS(svgns, "image"); 
pgnImage.setAttributeNS(null, "x", 0); 
pgnImage.setAttributeNS(null, "y", 0); 
pgnImage.setAttributeNS(null, "width", 100); 
pgnImage.setAttributeNS(null, "height", 100); 
pngImage.setAttributeNS(null, "http://www.freedos.org/images/logos/fdfish-glossy-plain.svg") 


svgElement.appendChild(shape); 
svgElement.appendChild(pgnImage); 

document.body.appendChild(svgElement); 

Here is my JSFiddle

+0

Ne yapmaya çalışıyorsunuz? SVG, Ölçeklendirilebilir Vektör Grafikleridir ... görüntülerdir, ancak ayarlanmış piksel yerine koordinatları kullanırlar ... Kendi puanlarınızı çizmeye mi çalışıyorsunuz? İyi şanslar! –

+0

svg'nin içinde bir görüntü öğesi oluşturun. https://stackoverflow.com/questions/6249664/does-svg-support-embedding-of-bitmap-images#6250418 –

+0

JSFiddle'u png görüntüsü yerine svg kullanacak şekilde düzenleyin. – loloof64

cevap

1

neden sen karşın, bu href niteliğini ayarlamanız gerekir Bir svg görüntü ayarlarken pngImage değişkenini çağırmak benim dışımda.

pngImage.setAttributeNS("http://www.w3.org/1999/xlink", "href", "http://www.freedos.org/images/logos/fdfish-glossy-plain.svg") 

Ayrıca değişken pngImage veya pgnImage olup olmadığı kafası karıştı, bir tarayıcı ayıklayıcı bu sorunun sizi bilgilendirecektir.

Like so

+0

Teşekkür ederim. Bu sına ihtiyacım var çünkü dış svg dosyalarını almak istiyorum. Kullanım durumu basittir: bir satranç ızgarası oluşturmak ve parça resimleri ithal etmek. – loloof64

+0

Peki bu nasıl olur? http://stackoverflow.com/questions/27806132/how-to-draw-a-chess-board-in-d3 –

+0

Teşekkür ederim ama bunu basit bir Javascript ile yapmak istiyorum. Ve neredeyse başardım. – loloof64