两个svg水平相连
Two svgs next to each other horizontally
是否可能有多个svg水平相邻?我知道当你在D3中添加一个SVG时,它会添加到前面的SVG下面。但是现在我的前一个SVG位于页面的一半,我想将这个SVG从前一个SVG的下方转换到前一个SVG的右侧。我尝试在第二个svg上使用transform->translate属性,但它不起作用:
var secondSVG= d3.select("#div1").append("svg").attr("width",960).attr("transform"),"translate(500, -500)");
在Chrome 24, IE10和FF17中,这个jsFiddle工作如预期。关键似乎是设置width
和height
样式表属性。
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="190" id="svg1">
<polygon points="100,10 40,180 190,60 10,60 160,180"
style="fill:lime;stroke:purple;stroke-width:5;fill-rule:evenodd;">
</svg>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="190" id="svg2">
<polygon points="100,10 40,180 190,60 10,60 160,180"
style="fill:lime;stroke:purple;stroke-width:5;fill-rule:evenodd;">
</svg>
CSS: svg
{
width: 190px;
height: 190px;
}
之前我也想做类似的事情,但我最终决定使用一个svg元素和两个内部g元素,其中一个元素向右转换。你可以在这里看到最终的成品。
总体思路:将每个SVG包装在div元素中,该元素显示为inline-block。我个人喜欢下面的方法。
- 设置svg的宽度和高度为100%。
- "内部影响":用viewBox属性指定绘图区域的大小(svg中元素的单位,如圆,与之相关);这通常与preserveAspectRatio属性一起使用。
https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/viewBox
https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/preserveAspectRatio - "外部影响":集装箱将适应其集装箱的大小。样式(宽度和/或高度)根据你的愿望。当然你需要足够的水平空间。
最小的例子:
<div style="display: inline-block; width: 42%">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="-80 -45 160 90" preserveAspectRatio="xMinYMin meet">
<circle cx="0" cy="0" r="39">
</svg>
</div>
<!-- Just a copy from above. Right of (not below) the previous SVG. -->
<div style="display: inline-block; width: 42%">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="-80 -45 160 90" preserveAspectRatio="xMinYMin meet">
<circle cx="0" cy="0" r="39">
</svg>
</div>
相关文章:
- D3在一个调用中绘制不同的SVG形状,没有可见性
- 如何使用javascript从主svg对象动态创建svg视图框
- 如何更改<svg>标记为<img>用js标记
- 锚点元素不't使用svg时,请打开EDGE上的href
- 带有填充属性的SVG矩形显示在包含元素的上方插入框阴影
- 使用onclick绘制SVG路径
- SVG/JavaScript:尝试选择和更改多边形点
- 顺时针旋转Svg元件
- 禁用SVG拖动
- 在select元素中显示highchart dashstyle(svg)
- 在D3.js中,有没有任何方法可以将x和y方向上的滚动事件绑定到平移svg
- 缩放Raphael/SVG容器以适应所有内容
- JavaScript-动态SVG-onload属性-未触发事件
- 设置动画时,SVG/Raphael大圆圈会变形
- 使用SVG和JavaScript创建波浪动画
- Canvas+svg路径动画,在路径中的特定点暂停一段时间,然后继续
- D3.js生成有效的SVG,但不显示任何内容
- 允许表单元格内容水平展开
- 在水平滚动上显示 SVG 动画
- 两个svg水平相连