Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 创建绘图应用程序,但它不是';不要画一条完整的线_Javascript_Drawing - Fatal编程技术网

Javascript 创建绘图应用程序,但它不是';不要画一条完整的线

Javascript 创建绘图应用程序,但它不是';不要画一条完整的线,javascript,drawing,Javascript,Drawing,我正在创建一个绘图应用程序,但它不起作用,它只是做了一些事情,而不是一条完整的线。请帮我解决这个问题 let prevX = 0, currX = 0, prevY = 0, currY = 0, painting = false, dot = false; window.addEventListener("load", function() { let cvs = document.querySelector(".area");

我正在创建一个绘图应用程序,但它不起作用,它只是做了一些事情,而不是一条完整的线。请帮我解决这个问题

    let prevX = 0,
    currX = 0,
    prevY = 0,
    currY = 0,
    painting = false,
    dot = false;

window.addEventListener("load", function() {

    let cvs = document.querySelector(".area");
    let ctx = cvs.getContext("2d");

    cvs.addEventListener("mousedown", function(){
        painting = true;
        dot = true;
    });

    cvs.addEventListener("mouseup", function(){
        painting = false;
        ctx.beginPath();
    });

function draw(){

    ctx.beginPath();
    ctx.moveTo(prevX, prevY);
    ctx.lineTo(currX, currY);
    ctx.strokeStyle = "red";
    ctx.lineWidth = "2";
    ctx.stroke();
    ctx.closePath();
}

    cvs.addEventListener("mousemove", function(e){

       if (dot) {
            ctx.beginPath();
            ctx.fillStyle = "red";
            ctx.fillRect(currX, currY, 2, 2);
            ctx.closePath();
            dot = false;
        }

        if(painting) {
            prevX = e.clientX;
            prevY = e.clientY;
            currX = e.clientX - cvs.offsetLeft;
            currY = e.clientY - cvs.offsetTop;
            draw();
        }
    });
})