Javascript SVG的宽度:g使用getBBox()返回错误的数字

Javascript SVG的宽度:g使用getBBox()返回错误的数字,javascript,html,svg,Javascript,Html,Svg,嗨,我试着得到一个元素的宽度,不管怎样,它总是显示509.5像素 起初我认为这是真实的尺寸,因为不是按比例大小 但我在Illustrator中打开SVG,宽度为700+像素 我在这里打了个盹 有解决办法吗 谢谢 编辑 我在Chrome上试用过,但它在Firefox中有相同的行为509.5px是它在用户空间(svg文档的空间)中的真实大小。 如果删除viewBox属性并使用illustrator重新打开它,它将为您提供509.5px的宽度 现在,如果希望在窗口(DOM)空间中获取其大小,请使用

嗨,我试着得到一个
元素的宽度,不管怎样,它总是显示509.5像素

起初我认为这是真实的尺寸,因为不是按比例大小

但我在Illustrator中打开SVG,宽度为700+像素

我在这里打了个盹

有解决办法吗

谢谢

编辑


我在Chrome上试用过,但它在Firefox中有相同的行为509.5px是它在用户空间(svg文档的空间)中的真实大小。
如果删除
viewBox
属性并使用illustrator重新打开它,它将为您提供
509.5px
的宽度

现在,如果希望在窗口(DOM)空间中获取其大小,请使用

$(文档).ready(函数(){
变量$screen=$(“#screen”)[0];
var screenWidth=$screen.getBoundingClientRect().width;
日志(“宽度为”+屏幕宽度);
//尝试在CSS中更改宽度,控制台始终显示509.5
});
功能日志(数据){
$('#log')。文本(数据);
}
#macbook{
宽度:400px;
高度:自动;
}


这是实际宽度,尝试删除viewBox属性并在illustrator中打开它,它会告诉您509.5px。对于一个解决方案,它取决于您想要实现的目标,如果您的目的是获得窗口的实际大小,请尝试使用
getBoundingClientRect()。width
我想要获得屏幕中显示的当前大小。我尝试编写
$screen.getBoundingClientRect().width
并未定义。我用错了吗?我编辑了注释:实际上getClientRects()将返回它包含的每个矩形的集合,它的行为似乎在FF和webkit之间波动。您可能更喜欢使用
getBoundingClientRect()
,它将只返回元素的rect。谢谢你,这很有效。你可以把它写在答案上,我会接受的