Raphaël-ZPD点击放大/缩小

时间:2013-12-02 14:46:28

标签: svg click zoom raphael

有人知道如何通过点击按钮来使用Raphaël-ZPD触发放大/缩小吗?

1 个答案:

答案 0 :(得分:0)

如果看一下Raphael-ZPD的代码,你会发现使用svg矩阵进行所有的缩放和平移。在缩放的特定情况下,它首先绘制鼠标所在的参考点,并使用鼠标滚轮的增量来计算相对于该点的缩放方向,以应用缩放量。

现在,如果你想使用一个按钮,你必须决定代码的增量,你可以使用屏幕的中心作为计算缩放方向的相对点。

对于初学者你可以使用svg scale属性,如果你使用Raphael ZPD就可以这样:

paper = Raphael('container',600, 600);
paper.ZPD({ zoom: true, pan: true, drag: false });

scale = 1;
var zoomin = document.getElementById('in')
var zoomout = document.getElementById('out')

zoomin.onclick = function(){
    scale *= 1.2
    paper.canvas.setAttribute("transform", "scale("+scale+")")
}

zoomout.onclick = function(){
    scale *= 0.8
    paper.canvas.setAttribute("transform", "scale("+scale+")")
}

Here是一个有效的例子

我建议添加一些计算屏幕中心的平移,因此缩放不会转到角落。但是想想这一切可能会指出你正确的方向。