【发布时间】:2015-04-01 16:01:52
【问题描述】:
我已经尝试解决这个问题超过一天了,但我找不到答案。我的问题是我需要缩放 SVG 图像(响应式设计)。我需要在客户端操作 SVG 代码,因此不能通过 img 标签嵌入它。因此,我尝试改用内联图像。但是,要正确缩放它,我似乎需要设置 viewBox 属性。 SVG 文件是由一些无法自行设置边界框的软件生成的,所以我的想法是为此使用 JavaScript。
问题是我的软件使用了我无法修改的库中的各种选项卡控件。我不能只获取边界框,因为它最初没有呈现,因此我只会返回零(在 Chrome 中)或错误消息(在 Firefox 中)。
我需要的是一种无需实际渲染对象即可获得边界框大小的方法。无法操纵库用于显示和隐藏选项卡的显示参数。
有什么想法吗?
一个想法是将 SVG 复制到另一个可见的 div 中,但我不知道这是否能解决问题。而且我不知道该怎么做。
最好的问候
【问题讨论】:
-
为什么不能等到选项卡控件呈现后再调整 viewBox 的大小?
-
因为 SVG 似乎没有视图状态更改事件,而且我的选项卡库的可能性非常有限。
-
我通过使用 JQuery 的 id 搜索正确的 svg 图像解决了我的问题。
-
你能澄清你的解决方案吗,我不明白。我也有类似的问题。
-
好吧,我为每个内联 svg 添加了一个 ID 标签,并通过 jQuery 选择了这个 ID。但我不记得细节了。
标签: javascript jquery svg inline