javascript - 制作一个已知边两条垂直线位置的矩形(路径元素)

标签 javascript html svg

我想制作一个知道边的两条垂直线位置的矩形。这些行的实现如下:

<path fill="#000000" id="Measure1" d="M159.688,119.75L159.688,88.75L160.28799999999998,88.75L160.28799999999998,119.75ZM162.688,119.75L162.688,88.75L163.28799999999998,88.75L163.28799999999998,119.75Z"/>

<path fill="#000000" id="Measure2" d="M260.168,119.75L260.168,88.75L260.76800000000003,88.75L260.76800000000003,119.75Z"/>

使用这段代码我有一个矩形:

<path d="M10 80 H 110 V 130 H   10 V  80 Z" fill="red" />

但是我可以使用两条线的坐标来使用它们来为我的矩形提供位置吗?

谢谢!

最佳答案

您可以使用SVG原生的getBBox()获取线条的边界框,然后计算位置,这是一个基本示例:

var path1 = document.getElementById("Measure1");
var path2 = document.getElementById("Measure2");
var xmlns = "http://www.w3.org/2000/svg";
var svg = document.querySelector("svg");

var bbox1 = path1.getBBox();
var bbox2 = path2.getBBox();

var x = bbox1.x + bbox1.width;
var y =  bbox1.y;
var width = bbox2.x - x;
var height =  bbox1.height;

var rect = document.createElementNS(xmlns, "rect");
rect.setAttribute("x", x);
rect.setAttribute("y", y);
rect.setAttribute("width", width);
rect.setAttribute("height", height);
rect.setAttribute("fill", "red");
svg.appendChild(rect);

您可以在此处查看结果:

http://jsfiddle.net/3rSYV/

关于javascript - 制作一个已知边两条垂直线位置的矩形(路径元素),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14661128/

相关文章:

javascript - 在提交表单之前在客户端散列密码的简单方法

javascript - 如何从 Textarea 中删除所有 anchor 和 anchor 文本?

ios - Paypal 移动支付 - 来自 Phonegap HTML5 IOS 应用程序

javascript - jQuery:折叠在页面加载时不起作用

具有圆形或弧段的 CSS 剪辑/路径/蒙版/形状动画

javascript - 更改滚动上的 Logo 图像尺寸(宽度和高度)

html - 如何根据html标签在UILabel中显示html文本?

reactjs - 在网站中使用 svg 图像的缺点?

SVG:文本未显示在链接的 TextPath 上

javascript - 引导下拉菜单 : How to set active link to display value on button?