Bau*_*umi 1 javascript svg viewbox
我有带有多个分组元素的 SVG。我要做的就是缩放到特定组。
我已经得到了正确的答案{top, left, width, height},我想缩放到(更改viewBox我的 SVG 的属性)。
有什么简单的方法可以计算 的正确值吗viewBox?
您可以将 viewBox 设置为等于“左上角宽度高度”:
这是一个简单的例子。单击任一矩形将缩放该矩形上的屏幕。再次单击它将使屏幕返回到原始缩放状态。
var selected = false;
var svg = document.getElementById('svg');
var zoomOnElement = function(e) {
if (e.target === selected) {
// Deselect element
svg.setAttribute("viewBox", "0 0 600 400");
selected = false;
} else {
// Select element
selected = e.target;
var viewBox = selected.getAttribute('x');
viewBox += " " + selected.getAttribute('y')
viewBox += " " + selected.getAttribute('width')
viewBox += " " + selected.getAttribute('height')
svg.setAttribute("viewBox", viewBox);
}
}
document.getElementById('rect-1').addEventListener("click", zoomOnElement);
document.getElementById('rect-2').addEventListener("click", zoomOnElement);Run Code Online (Sandbox Code Playgroud)
<svg xmlns="http://www.w3.org/2000/svg" width="300" height="200" viewBox="0 0 600 400" id="svg">
<rect id="background" width="600" height="400" fill="#eee"/>
<rect id="rect-1" x="100" y="50" width="50" height="300" fill="red"/>
<rect id="rect-2" x="225" y="175" width="300" height="50" fill="blue"/>
</svg>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3249 次 |
| 最近记录: |