让currX = e.offsetX || (e.pageX-this.canvasx); 让currY = e.offsetY || (e.pageY-this.canvasy);
let posX = this.prevX - currX;
let posY = this.prevY - currY;
console.log('Position Y value :' + posY);
if (posY > 0) {
// Compute zoom factor.
var zoom = Math.exp(posY * this.scaleFactor);
// Translate so the visible origin is at the context's origin.
this.ctx.translate(currX, currY);
console.log('current zoom value on Y- axis increasing' + zoom)
this.ctx.scale(zoom, zoom);
this.redraw(this.ctx);
this.drawLines(this.ctx);
} else if (posY < 0) {
var zoom = Math.exp(posY * this.scaleFactor);
console.log('current zoom value on Y- axis decreasing' + zoom)
this.ctx.translate(currX, currY);
this.ctx.scale(zoom, zoom);
this.redraw(this.ctx);
this.drawLines(this.ctx);
}
上面给出的代码是在画布中执行缩放的示例,在这里我将两个画布背景用于图像lod,将其他画布背景用于绘制形状。