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
如何使用JavaScript获得缩放SVG元素的宽度?_Javascript_Svg_Width - Fatal编程技术网

如何使用JavaScript获得缩放SVG元素的宽度?

如何使用JavaScript获得缩放SVG元素的宽度?,javascript,svg,width,Javascript,Svg,Width,如果我有内联SVG,包括一个已缩放的元素 <g transform="scale(sX,sY)"> <rect id="myElement" x="107" y="32" width="245" height="31" stroke="#C6C3C6" stroke-width="1px" /> </g> 。。。如何以编程方式找到新的缩放宽度(以像素为单位),而无需手动检测缩放并进行计算?到目前为止,返回的245没有考虑缩放。您研究过可以与getBB

如果我有内联SVG,包括一个已缩放的元素

<g transform="scale(sX,sY)">
    <rect id="myElement" x="107" y="32" width="245" height="31" stroke="#C6C3C6" stroke-width="1px" />
</g>

。。。如何以编程方式找到新的缩放宽度(以像素为单位),而无需手动检测缩放并进行计算?到目前为止,返回的
245
没有考虑缩放。

您研究过可以与getBBox()一起使用的参数吗

请检查一下这把小提琴。单击矩形并注意firebug控制台。 这里我硬编码了一个数字.3,它是300像素宽的div,包含svg节点/1000个用户单元

看到赏金后,这是我返回的函数,用于获取缩放宽度,但没有太多(我不确定是否有数学)。math.Use
matrix.d
用于获取缩放高度

    var svg = document.getElementById('svg'); 
    function getTransformedWidth(el){
        var matrix = el.getTransformToElement(svg);
        return matrix.a*el.width.animVal.value;
    }

    var ele = document.getElementById('myElement_with_scale')
    console.log("scale width----", getTransformedWidth(ele))
请看这把小提琴的完整代码

    var svg = document.getElementById('svg'); 
    function getTransformedWidth(el){
        var matrix = el.getTransformToElement(svg);
        return matrix.a*el.width.animVal.value;
    }

    var ele = document.getElementById('myElement_with_scale')
    console.log("scale width----", getTransformedWidth(ele))