我希望能够让一个SVG元素可平移,通过仅操作viewBox属性的前两个值似乎是可能的。但我无法确定是否可以在setAttribute内使用变量。
以下是我的JavaScript代码:
function panSvg(event) {
var x = event.clientX - 498;
var y = event.clientY - 183;
//show coordinates in a <p> element
document.getElementById("opf").innerHTML = "X: " + x + " Y: " + y;
//make viewBox react to mouse movement
document.getElementById("svag").setAttribute("viewBox", y x 100 100);
}
HTML:
<svg id="svag" onmousemove="panSvg(event)" width="600" height="600" viewBox="0 0 100 100">
我知道或感觉到,在用户定义的左右角值(在html中最初为0 0)中,将x和y放置可能会有些困难,但也许我只需要正确的语法? (目前我只想看看它是否对viewBox产生影响,我还没有弄清楚如何设置x和y以进行适当的平移)。 我看到了太过复杂的缩放解决方案,而我却相当容易地实现了缩放,希望这个问题也有一个优雅的解决方案。