I';我发现Javascript中的closePath()存在一些问题 我必须在中间拉一条水平的红色和垂直的绿线。我可以分别为每一行做,但两行加在一起都是绿色的。谁能告诉我为什么 var c= document.getElementById('myCanvas').getContext('2d'); //c.fillRect(20,10,250,175);// var cw= 450; var ch= 300; c.moveTo(0,(ch/2)); c.lineTo(450,(ch/2)); c.strokeStyle= '#db0000'; c.stroke(); c.moveTo((cw/2),0); c.lineTo((cw/2),cw); c.closePath(); c.strokeStyle= '#3ac214'; c.stroke();

I';我发现Javascript中的closePath()存在一些问题 我必须在中间拉一条水平的红色和垂直的绿线。我可以分别为每一行做,但两行加在一起都是绿色的。谁能告诉我为什么 var c= document.getElementById('myCanvas').getContext('2d'); //c.fillRect(20,10,250,175);// var cw= 450; var ch= 300; c.moveTo(0,(ch/2)); c.lineTo(450,(ch/2)); c.strokeStyle= '#db0000'; c.stroke(); c.moveTo((cw/2),0); c.lineTo((cw/2),cw); c.closePath(); c.strokeStyle= '#3ac214'; c.stroke();,javascript,styles,stroke,Javascript,Styles,Stroke,您应该使用beginPath()方法来获得正确的颜色。beginPath()方法开始一条路径,或重置当前路径 以下是工作演示: 在此处检查更新的代码: function drawCanvas(){ var c= document.getElementById('myCanvas').getContext('2d'); var cw= 450; var ch= 300; c.beginPath(); c.moveTo(0,(ch/2)); c.l

您应该使用
beginPath()
方法来获得正确的颜色。
beginPath()
方法开始一条路径,或重置当前路径

以下是工作演示:

在此处检查更新的代码:

function drawCanvas(){
    var c= document.getElementById('myCanvas').getContext('2d');

    var cw= 450;
    var ch= 300;

    c.beginPath();
    c.moveTo(0,(ch/2));
    c.lineTo(450,(ch/2));
    c.strokeStyle= '#db0000';
    c.stroke();


    c.beginPath();
    c.moveTo((cw/2),0);
    c.lineTo((cw/2),cw);
    c.closePath();
    c.strokeStyle= '#3ac214';
    c.stroke();
}
希望这有帮助