2015-10-08 3 views
5

Каков правильный синтаксис для предоставления атрибута viewBox элемента svg с использованием заданных значений? У меня есть это:snap svg: изменить viewBox с использованием параметров

var mySvg=Snap("#mySvg"); 
    var worldMap=mySvg.select("#worldMap");//worldMap is an svg inside svg 

, когда я попытался это:

worldMap.attr({viewBox:"760, 455, 132, 78"}); 

это работает просто отлично. Однако, когда я попробовал его с использованием параметров:

var x=760; 
var y=455; 
var wi=132; 
var hi=78; 

worldMap.attr({viewBox:"x, y, wi, hi"); 

ничего не случилось, почему? Я верю, что проблема заключается в том, чтобы найти правильный синтаксис. Я также пробовал:

worldMap.attr({viewBox:x, y, wi, hi); 
worldMap.attr({viewBox:{x, y, wi, hi}); 
worldMap.attr({viewBox:(x, y, wi, hi)); 
worldMap.attr({viewBox:[x, y, wi, hi]); 

ничего не работает до сих пор ... любое предложение?

ответ

3

объединить ваши значения и ваши разделители (,) как строку. Попробуйте это, он должен работать.

worldMap.attr({viewBox:x+","+y+","+wi+","+hi}); 
+0

Никогда не думайте об этом, спасибо, Холгер, это было полезно. – Rickard

2

вы также можете использовать:

worldMap.attr({viewBox:[x,y,wi,hi].join(',')}); 
worldMap.attr({viewBox:[x,y,wi,hi].join(' ')}); 

это более читаемым

Edit: в моем первом ответе я использовал соединения с «», но в MDN учебнике определение с пространством полукокса ''

Смежные вопросы