snap svg:使用参数

时间:2015-10-08 03:10:00

标签: svg snap.svg

使用预定义值提供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]);

到目前为止没有任何作用......有任何建议吗?

2 个答案:

答案 0 :(得分:3)

将您的值和分隔符(,)连接成一个字符串。试试这个,应该有效。

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

答案 1 :(得分:3)

你也可以使用:

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

它更具可读性

编辑: 在我的第一个答案中,我使用','加入,但在MDN教程定义中使用了空格char''