根据svg元素的内容调整svg元素的大小
Adjust size of an SVG-element to its content
我想调整svg元素的尺寸以适应其内容。
JSfiddle: http://jsfiddle.net/4pD9N/
这里我有一个例子。SVG应该"收缩",以适应每边元素+ 10px的边距。换句话说:我想为未使用的空间裁剪svg…
我知道我必须使用getBBox
。但是我如何计算总宽度和高度呢?
默认情况下,SVG绘图的原点与容器的原点相同。这意味着绘图的(0,0)
位于SVG元素的左上角。要使内容居中,应该将绘图相对于容器进行平移。可以根据getBBox()
方法的结果修改SVG元素的viewBox
属性(期望的四个值:"minx miny width height"
)来实现。下面是一个实例:http://jsfiddle.net/3cp3c/。
svg.setAttribute("viewBox", (bbox.x-10)+" "+(bbox.y-10)+" "+(bbox.width+20)+" "+(bbox.height+20));
svg.setAttribute("width", (bbox.width+20) + "px");
svg.setAttribute("height",(bbox.height+20) + "px");
var svg = document.getElementsByTagName("svg")[0];
var bb=svg.getBBox();
var bbx=bb.x;
var bby=bb.y;
var bbw=bb.width;
var bbh=bb.height;
var vb=[bbx,bby,bbw,bbh];
svg.setAttribute("viewBox", vb.join(" ") );
相关文章:
- 锚点元素不't使用svg时,请打开EDGE上的href
- 带有填充属性的SVG矩形显示在包含元素的上方插入框阴影
- 在select元素中显示highchart dashstyle(svg)
- 如何自动保存动态生成的HTML SVG元素
- 使用svg和javascript将一个类的元素动画化为另一个类
- 将包含SVG元素的HTML转换为图像文件
- SVG元素——处理和选择文本
- 更改SVG'style'元素
- SVG元素在转换后会丢失事件侦听器
- 获取以屏幕像素为单位的旋转SVG元素的边界
- 使用JavaScript查找具有特定属性的SVG元素
- 如何使用正则表达式按类获取svg元素
- d3与svg在处理元素时的对比
- 是否可以在不创建svg对象的情况下创建捕捉元素?[snap.svg]
- 将SVG元素拖动到另一个SVG元素上
- 捕捉.svg — 单击其中一个元素时删除对象
- 单击事件在替换<使用>元素在<svg>(Win7/IE11)
- 我想隐藏/显示我的SVG元素,同时在anguarJS中使用它
- 在元素 SVG 中使用 JavaScript 或 jQuery 进行事件单击
- 是否有一种方法可以使用Javascript合并两个路径元素(svg)