Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.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 Canvas/JS:can';在不改变前一行的情况下,不要改变行_Javascript_Canvas - Fatal编程技术网

Javascript Canvas/JS:can';在不改变前一行的情况下,不要改变行

Javascript Canvas/JS:can';在不改变前一行的情况下,不要改变行,javascript,canvas,Javascript,Canvas,我正试图通过一个简单的点击功能来改变画布上的徒手画的线条。但当我在这个div中单击时,前面的图形也会获得新的线宽,并且不会保持其原始状态。我能解决这个问题吗 JavaScript var el = document.getElementById('canvas'); var ctx = el.getContext('2d'); var isDrawing; var redStroke= ctx.strokeStyle = "#FF0000"; el.onmousedown = function

我正试图通过一个简单的点击功能来改变画布上的徒手画的线条。但当我在这个div中单击时,前面的图形也会获得新的线宽,并且不会保持其原始状态。我能解决这个问题吗

JavaScript

var el = document.getElementById('canvas');
var ctx = el.getContext('2d');
var isDrawing;
var redStroke= ctx.strokeStyle = "#FF0000";

el.onmousedown = function(e) {
  isDrawing = true;
  ctx.moveTo(e.offsetX, e.offsetY);
    //ctx.lineWidth=1;->default
};

el.onmousemove = function(e) {
  if (isDrawing) {
    ctx.lineTo(e.offsetX, e.offsetY);
      ctx.stroke();
  }


};
el.onmouseup = function() {
  isDrawing = false;
};

$('#medium').click(function(){
    var mediumStroke=ctx.lineWidth=5;
   mediumStroke; 
});

$('#large').click(function(){
    var largeStroke=ctx.lineWidth=20;
   largeStroke; 
});
HTML:


中等冲程

厚冲程

在绘制直线之前,您需要使用方法

var el=document.getElementById('canvas');
var ctx=el.getContext('2d');
var提取;
var redStroke=ctx.strokeStyle=“#FF0000”;
el.onmousedown=函数(e){
isDrawing=true;

ctx.beginPath();//执行此操作时,您将在每个mousemove上绘制以前的路径,这将创建工件。清除画布,存储以前的坐标,并在每个mousemove上创建新路径。
<div class="container">
            <canvas id="canvas" width="800" height="500"></canvas>

            <div class= "stroke">
                <p id="medium">Medium Stroke</p>
                <p id="large">Thick Stroke</p>
            </div>

        </div>