javascript使用鼠标时间绘制路径,鼠标出现偏移

一般情况下,鼠标位置和笔尖是正常的,偶尔会出现 鼠标和笔尖位置出现偏移,如何解决

图片描述

贴上关键代码

canvas.onmousedown = function (e) {
    var e = e || event;
    ctx.beginPath();
    ctx.moveTo(e.clientX - canvas.offsetLeft, e.clientY - canvas.offsetTop);
    
    ctx.strokeStyle = 'rgb(' + selColorR + ', ' + selColorG + ', ' + selColorB + ')';
    ctx.lineWidth = panWidth;

    document.onmousemove = function (e) {
        var e = e || event;
        var x = e.clientX - canvas.offsetLeft;
        var y = e.clientY - canvas.offsetTop
        ctx.lineTo(x, y);
        ctx.stroke();
        //console.log(x+','+y);
        op.push({ 'x': x, 'y': y });
    }
    document.onmouseup = function (e) {
        this.onmousemove = null;
        ctx.closePath();
        //数组去重 TODO
        reDrew(ctx1, op)
        op = [];
    }

}
阅读 2.4k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题