snap svg :使用参数更改 viewBox
snap svg : change viewBox using parameters
使用预定义值提供 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]);
到目前为止没有任何效果...有什么建议吗?
将您的值和分隔符 (,) 连接成一个字符串。试试这个,它应该可以工作。
worldMap.attr({viewBox:x+","+y+","+wi+","+hi});
您还可以使用:
worldMap.attr({viewBox:[x,y,wi,hi].join(',')});
worldMap.attr({viewBox:[x,y,wi,hi].join(' ')});
它更具可读性
编辑:
在我的第一个回答中,我使用了“,”连接,但在 MDN 教程定义中使用 space char ' '
使用预定义值提供 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]);
到目前为止没有任何效果...有什么建议吗?
将您的值和分隔符 (,) 连接成一个字符串。试试这个,它应该可以工作。
worldMap.attr({viewBox:x+","+y+","+wi+","+hi});
您还可以使用:
worldMap.attr({viewBox:[x,y,wi,hi].join(',')});
worldMap.attr({viewBox:[x,y,wi,hi].join(' ')});
它更具可读性
编辑: 在我的第一个回答中,我使用了“,”连接,但在 MDN 教程定义中使用 space char ' '