【发布时间】:2012-04-10 07:57:10
【问题描述】:
我正在尝试更改 JavaScript 中的 SVG 元素视图框。基本上,我正在绘制一个二叉搜索树,当它变得太宽时,我想改变视图框以缩小以便树适合窗口。我目前正在使用:
if(SVGWidth>=1000){
var a = document.getElementById('svgArea');
a.setAttribute("viewbox","0 0 " + SVGWidth + " 300");
}
HTML 是:
<svg id="svgArea" xmlns="w3.org/2000/svg"; xmlns:xlink="w3.org/1999/xlink"; width="1000" height="300" viewBox="0 0 1000 300">
我也尝试过使用 setAttributeNS('null',...) 但这似乎也不起作用。我注意到的一件奇怪的事情是,当我 alert(a) 时,它给出的 [object SVGSVGElement] 看起来很奇怪。任何帮助表示赞赏。
【问题讨论】:
-
我可以知道你为什么不想使用库吗?
-
我应该补充一下,SVGWidth 可能是一个错误的变量名,应该只是 treeWidth。此外,SVG 的 html 是:
-
我没有使用库,因为我专注于学习 JavaScript。我的下一个项目将添加库,但我认为最好从原生 JavaScript 开始。
-
@aclear16 :可能使用库来实现这一点会令人沮丧,因为它应该可以工作,而且它只会限制 OP 对 DOM 操作的一般理解(因此他们将受制于图书馆)。虽然不应该期望我们理解到汇编级别的东西,但了解您已经在其中工作的东西实际上是如何工作的总是有帮助的,而不是依赖于库。
标签: javascript svg viewbox