js08 - Fun with HTML5 Canvas

内容

  <canvas id="draw" width="800" height="800"></canvas>
  <script>
    let canvas = document.querySelector('#draw');
    let ctx = canvas.getContext('2d');
    canvas.width = window.innerWidth;
    canvas.height = window.innerHeight;
    let isDrawing = false;
    let lastX = 0;
    let lastY = 0;
    //设置画笔
    ctx.lineWidth = 90;//线条宽度
    ctx.lineJoin = 'round';//线条相较方式 round|bevel|miter
    ctx.fillStyle = 'f00';//线条填充颜色
    ctx.lineCap = 'round';//笔触形状
    ctx.strokeStyle = 'f00'//线条描边颜色
    let hue = 0;
    let direction = true;
    let x = 0;
    let y = 0;

    function draw(e) {
      if (!isDrawing) return;
      if (e.type == "mousemove") {
        x = e.offsetX;
        y = e.offsetY;
      }
      //设置画笔颜色变化
      ctx.strokeStyle = `hsl(${hue},90%,50%`;
      if (hue >= 360)
        hue = 0;
        hue++;
      
      //改变笔触大小
      if (ctx.lineWidth > 120 || ctx.lineWidth < 10) {
        direction = !direction;
      }
      if (direction) {
        ctx.lineWidth++;
      } else {
        ctx.lineWidth--
      }
      //
      ctx.beginPath();//新建路径
      ctx.moveTo(lastX, lastY);//绘制操作的起点
      ctx.lineTo(x, y);//路径的终点
      ctx.stroke();//绘制轮廓
      [lastX, lastY] = [x, y]
    }
    //增加监听
    canvas.addEventListener('mousedown',(e)=>{
      isDrawing = true;
      [lastX,lastY] = [e.offsetX,e.offsetY]
    })
    canvas.addEventListener('mousemove',draw);
    canvas.addEventListener('mouseup',()=>isDrawing = false);
    canvas.addEventListener('mouseout',()=>isDrawing = false)
  </script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值