ずっと前にjsfiddleを作成して、中央にズームする方法を示しました(http://jsfiddle.net/Y69nm/1/)。今、私はgoogleMapのように、与えられたポイント(カーソル)にズームしたいのですが、どうすればいいのかわかりません。ズームを操作する関数に実際のマウス座標を送信します。
ここにフィドルがあります:http: //jsfiddle.net/Y69nm/3/
ズーム機能は次のとおりです。
function handle(delta, mousex, mousey) {
if (delta < 0) {
viewBoxWidth *= 0.95;
viewBoxHeight *= 0.95;
} else {
viewBoxWidth *= 1.05;
viewBoxHeight *= 1.05;
}
scale = paper.width / viewBoxWidth ;
console.log(scale);
// zoom to center
x = (paper.width / 2) - (viewBoxWidth / 2);
y = (paper.height / 2) - (viewBoxHeight / 2);
// i try to zoom to mouse cursor
var moveX = (mousex - (mousex * scale));
var moveY = (mousey - (mousey * scale));
x = 0 - moveX;
y = 0 - moveY;
paper.setViewBox(x, y, viewBoxWidth, viewBoxHeight);
}