【发布时间】:2014-11-07 20:28:49
【问题描述】:
我正在尝试制作一个可以通过鼠标滚轮进行缩放的舞台。我正在使用 stage.scale 和 jquery 事件。但是我无法以鼠标指针为中心进行缩放。所以当我的鼠标在一个点上时,我想把它集中放大。
我已经做了这个例子,但现在不起作用: http://fiddle.jshell.net/rr7pLapz/1/
这是我的缩放功能:
$("#cont").bind('mousewheel', function(e) {
var x = e.offsetX;
var y = e.offsetY;
if (e.originalEvent.wheelDelta > 0) {
STAGE.scale({
x:STAGE.scale().x+1,
y:STAGE.scale().y+1
});
STAGE.x(-x + 500/(STAGE.scale().x));
STAGE.y(-y + 350/(STAGE.scale().y));
STAGE.batchDraw();
}
else {
if (STAGE.scale().x > 1) {
STAGE.x(-x + 500/(STAGE.scale().x));
STAGE.y(-y + 350/(STAGE.scale().y));
STAGE.scale({
x:STAGE.scale().x-1,
y:STAGE.scale().y-1
});
STAGE.batchDraw();
}
}
});
你能帮忙吗?非常感谢。
【问题讨论】:
-
将缩放点设置为鼠标位置。缩放点为 offsetX 和 offsetY。
标签: javascript jquery zooming kineticjs