放大fabricjs,对象位置(Zooming in fabricjs, object positions)
我有一个问题(我相信它类似于一个calcOffset正在修复)与对象的位置。
我用鼠标滚轮放大了。 缩放后,形状将显示在新位置,但无法在这些位置处理。 仅在他们的预变焦位置。
jsfiddle的例子
这是我的缩放代码:
function displaywheel(e){ var SCALE_FACTOR = 1.1; var evt=window.event || e var delta=evt.detail? evt.detail*(-120) : evt.wheelDelta var objects = canvas.getObjects(); var dd = 1; if (delta == 120) dd=SCALE_FACTOR; if (delta == -120) dd=1/SCALE_FACTOR; globscale = globscale * dd; for (var i in objects) { objects[i].setCoords; objects[i].scaleX = globscale; objects[i].scaleY = globscale; objects[i].left = objects[i].left * dd; objects[i].top = objects[i].top * dd; objects[i].setCoords; } canvas.renderAll(); canvas.calcOffset(); }I have a problem ( i believe it is similar to the one calcOffset is fixing) with positions of objects.
I zoom in-out with mouse scroll wheel. After zooming, shapes are displayed at new positions but cannot be handled at these position. Only at their pre-zoom positions.
jsfiddle example
Here is my code for zooming:
function displaywheel(e){ var SCALE_FACTOR = 1.1; var evt=window.event || e var delta=evt.detail? evt.detail*(-120) : evt.wheelDelta var objects = canvas.getObjects(); var dd = 1; if (delta == 120) dd=SCALE_FACTOR; if (delta == -120) dd=1/SCALE_FACTOR; globscale = globscale * dd; for (var i in objects) { objects[i].setCoords; objects[i].scaleX = globscale; objects[i].scaleY = globscale; objects[i].left = objects[i].left * dd; objects[i].top = objects[i].top * dd; objects[i].setCoords; } canvas.renderAll(); canvas.calcOffset(); }最满意答案
setCoords 是一个函数 ,你需要像这样调用它:
objects[i].setCoords();
objects[i].setCoords; 什么都不做。
http://jsfiddle.net/w5NjC/1/
setCoords is a function, you need to call it like this:
objects[i].setCoords();
objects[i].setCoords; does absolutely nothing.
http://jsfiddle.net/w5NjC/1/
更多推荐
发布评论