为了账号安全,请及时绑定邮箱和手机立即绑定

clearRect函数不会清除画布

clearRect函数不会清除画布

守着星空守着你 2019-09-27 15:18:22
我在body onmousemove函数上使用此脚本:function lineDraw() {    // Get the context and the canvas:    var canvas = document.getElementById("myCanvas");    var context = canvas.getContext("2d");    // Clear the last canvas    context.clearRect(0, 0, canvas.width, canvas.height);    // Draw the line:    context.moveTo(0, 0);    context.lineTo(event.clientX, event.clientY);    context.stroke();}每次我移动鼠标并画一条新线时,都应该清除画布,但是它不能正常工作。我正在尝试不使用jQuery,鼠标侦听器或类似工具来解决它。这是一个演示:https : //jsfiddle.net/0y4wf31k/
查看完整描述

3 回答

?
德玛西亚99

TA贡献1770条经验 获得超3个赞

您应该使用“ beginPath() ”。这就对了。


function lineDraw() {   

    var canvas=document.getElementById("myCanvas");

    var context=canvas.getContext("2d");

    context.clearRect(0, 0, context.width,context.height);

    context.beginPath();//ADD THIS LINE!<<<<<<<<<<<<<

    context.moveTo(0,0);

    context.lineTo(event.clientX,event.clientY);

    context.stroke();

}


查看完整回答
反对 回复 2019-09-27
?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

尝试context.canvas.width = context.canvas.width:


function lineDraw() {   

    var canvas=document.getElementById("myCanvas");

    var context=canvas.getContext("2d");

    //context.clearRect(0, 0, context.width,context.height);

    context.canvas.width = context.canvas.width;

    context.moveTo(0,0);

    context.lineTo(event.clientX,event.clientY);

    context.stroke();

}


查看完整回答
反对 回复 2019-09-27
  • 3 回答
  • 0 关注
  • 1536 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信