使用预定义值提供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]);
到目前为止没有任何作用......有任何建议吗?
答案 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''