2
나는 성공적 그러나이 계정에 원래 scale = 1
로 다시 축소 뷰의 위치를 고려하지 않습니다 this examplePaperJS 줌 및 팬
zoom: function(delta, point){
if (!delta) return;
var
oldZoom = paper.view.zoom,
oldCenter = paper.view.center,
viewPos = paper.view.viewToProject(point);
newZoom = delta > 0 ? oldZoom * 1.05 : oldZoom/1.05;
if (!this.allowedZoom(newZoom)) return;
var
zoomScale = oldZoom/newZoom,
centerAdjust = viewPos.subtract(oldCenter),
offset = viewPos.subtract(centerAdjust.multiply(zoomScale)).subtract(oldCenter);
paper.view.center = view.center.add(offset);
},
allowedZoom: function(zoom){
zoom = Math.max(zoom, this.settings.minZoom);
zoom = Math.min(zoom, this.settings.maxZoom);
if (zoom !== paper.view.zoom)
{
paper.view.zoom = zoom;
return zoom;
}
return null;
}
에 따라 줌 기능을 구현했습니다. 내 말은 캔버스 가장자리에 뷰를 고정시키고 싶습니다.