从任何图纸中清除画布

时间:2016-08-25 22:59:54

标签: javascript html5 canvas

这个JS代码在控制台中执行时工作正常,但公共方法clean()不会消除画布上的所有内容。
代码有其他方法,但失败的是清理。 ctx有一个值,所以它不是null。 如何修复以便清理画布?感谢

signRect = function() {
  let tr_sign = null;
  let ctx = null;
  let canvas_sign = null;
  const makeCanvas = () => {
    if (canvas_sign) return canvas_sign;
    canvas_sign = document.createElement('canvas');
    canvas_sign.position = 'absolute';
    canvas_sign.width = 300;
    canvas_sign.height = 170;
    canvas_sign.id = 'signature';
    canvas_sign.style.border = '1px solid black';
    canvas_sign.style.top = '-75px';
    canvas_sign.style.left = '-50px';
    canvas_sign.style.opacity = '0.5';
    canvas_sign.style.position = 'absolute';
    ctx = canvas_sign.getContext('2d');
    ctx.fillStyle = "#000";
    ctx.lineWidth = 1;
    return canvas_sign;
  };

  return {
    clean: () => {
      ctx.clearRect(0, 0, canvas_sign.width, canvas_sign.height);
      ctx.beginPath();
    }
  }
};

1 个答案:

答案 0 :(得分:0)

确保明确关闭路径,请参阅this以获取更多信息。

除此之外,你可以使用canvas.width = canvas.width;“hack”。