Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何更改svg的参数<;g变换=比例(X)>;使用JavaScript?_Javascript_Svg - Fatal编程技术网

如何更改svg的参数<;g变换=比例(X)>;使用JavaScript?

如何更改svg的参数<;g变换=比例(X)>;使用JavaScript?,javascript,svg,Javascript,Svg,嘿。 假设我的页面上有SVG图形。当某个事件被触发时,我想重新缩放一个组。我该怎么做? 示例代码: <svg onresize="getDivSize(evt)"> <g transform=scale(13)> <rect id="Square" class="chart" width="80" height="20" fill="black" stroke-width

嘿。
假设我的页面上有SVG图形。当某个事件被触发时,我想重新缩放一个组。我该怎么做?
示例代码:

<svg onresize="getDivSize(evt)">
    <g transform=scale(13)>
        <rect id="Square" class="chart"
            width="80" height="20"
            fill="black"
            stroke-width="0px"
            rx="8" ry="8" />
         <text id="TextElement" x="13" y="15" fill="green">Text</text>
     </g>
</svg>

文本
我想改变scale(13)参数,要做到这一点,函数getScreenSize(evt){…}中应该有什么 或者如何以不同的方式达到相似的效果

编辑

至于一般的想法,我想调整图形的大小,而不在任何地方指定固定的值。所以我的div大小是基于百分比的,现在我只想让我的图形完全适合我的div,而不管它的大小。这就是为什么每当触发事件(div resize)时,JS都会更改scale()参数。函数将放入DivSize/rectBaseSize(x或y)的比例参数计算。

添加一个id属性,然后尝试以下操作:

document.getElementById("id_of_g_element").transform.baseVal.getItem(0).setScale(new_scalex,newscale_y);
或者:

document.getElementById("id_of_g_element").setAttribute("transform", "scale(" + new_scalex + "," + new_scaley + ")");

另一方面,为什么不使用viewBox自动重新缩放svg内容?或者对应该显示什么有具体的限制?使用基于CSS3媒体查询的非脚本解决方案也可以实现其中的一些功能,请参见(不要忘记查看该演示文稿中演示文件的链接说明)。

如果您“只是”希望SVG扩展到DIV的大小,可以使用CSS实现

#stretched-image {
    margin: 0;
    position:fixed;
    top:0; left:0; right:0; bottom:0;
    height:100%;
    background-size:cover;
    display: block; 
    background-position:50% 50%;
    background-image: url(../img/pic.svg); 
}

我还没有研究viewbox,因为到目前为止,我有4个小时的SVG和JS:P的使用经验,不管怎样,我也会研究它和CSS的方式-thx的链接。如何动态添加id???@AbinayaSelvaraju e.g
yourElement.id=“foo”
yourElement.setAttribute(“id”、“foo”)。我已经使用SVG好几个月了,对“baseVal”业务一无所知。