js 图片拖动会有图像遗留问题
在一个盒子中拖拽图片和缩放,在图片移动的矩形上会有图像遗留是什么原因,怎么解决?
没有拖动之前的样子:
向右拖动图片后为什么出现画面遗留
代码:
// 为画布上鼠标的拖拽注册事件canvasDragEventsInit() {
console.log("图片拖动");
let _this = this;
let canvas = _this.myCanvas;
canvas.onmousedown = function(event) {
event.preventDefault();
event.stopPropagation();
let imgx = _this.imgX;
let imgy = _this.imgY;
let pos = { x: event.clientX, y: event.clientY }; // 坐标转换,将窗口坐标转换成canvas的坐标
canvas.onmousemove = function(evt) {
evt.preventDefault();
evt.stopPropagation();
// 移动
canvas.style.cursor = "move";
let x = (evt.clientX - pos.x) * 2 + imgx;
let y = (evt.clientY - pos.y) * 2 + imgy;
_this.imgX = x;
_this.imgY = y;
_this.drawImage(_this.imgObject); // 重新绘制图片
};
canvas.onmouseup = function() {
canvas.onmousemove = null;
canvas.onmouseup = null;
canvas.style.cursor = "default";
};
};
},
回答:
使用clearRect先清除之前的内容,再绘制,或者用fillRect填充一个背景色
以上是 js 图片拖动会有图像遗留问题 的全部内容, 来源链接: utcz.com/p/937349.html