一、效果图

二、上代码

<!DOCTYPE html><html lang="en"><head>  <meta charset="UTF-8">  <meta http-equiv="X-UA-Compatible" content="IE=edge">  <meta name="viewport" content="width=device-width, initial-scale=1.0">  <title>Document</title>  <style>    #canvas{      background: url(https://image-static.segmentfault.com/464/827/464827894-6363d955ba2a5_fix732);      background-size: 100%;    }  </style></head><body>  <canvas id="canvas" width="480" height="720">    你的浏览器不反对 canvas,请降级你的浏览器。  </canvas>  <script>    const canvas = document.getElementById('canvas')    let ctx = canvas.getContext("2d")    ctx.beginPath();    ctx.fillStyle = '#9c9fb3';    ctx.fillRect(0, 0, canvas.width, canvas.height);    ctx.globalCompositeOperation = 'destination-out';    ctx.lineWidth = 60;    ctx.lineCap = 'round';    canvas.onmousedown = function(e) {      var event = e || window.event;      var x = event.clientX;      var y = event.clientY;      ctx.moveTo(x, y);    }    canvas.onmousemove = function(e) {      var event = e || window.event;      var x = event.clientX;      var y = event.clientY;      ctx.lineTo(x, y);      ctx.stroke();    }  </script></body></html>

三、重点globalCompositeOperation用法