美文网首页
canvas 简单画图板

canvas 简单画图板

作者: Bruce1224 | 来源:发表于2017-10-19 08:31 被阅读6次

start

我们用canvas要做这样一个东西

图片

一个简单的触笔写字板,是不是很好,haha

prepare

  • 我们会用到一些js的基础知识,还有canvas 基础的化线,不懂可以直接查看官方api,一查就会,如 addEventListener,mousemove,mouseup,mousedown 等,是不是很快想到该怎么做了!

beginning

  • 大概思路
    • 首先是设置一些基础的变量,锁lock,旧坐标(oldX,oldY ),canvas画线相关设置,一会会说到

Coding

  • html 代码
  <canvas id="canvas" width="600" height="300"></canvas>

就一行代码

  • script 代码 (获取元素 )变量声明
  var canvas = document.getElementById('canvas')
  let ctx = canvas.getContext('2d')
  ctx.fillStyle = 'black'
  ctx.fillRect(0,0,600,300)
  //设置线的颜色
  var linerColor = 'white'
  //宽
  var linw = 4
  var lock = false
  var oldx = 0
  var oldy = 0
  • 给canvas 画布注册 事件
  canvas.addEventListener('mousemove',move,false)
  canvas.addEventListener('mousedown',down,false)
  canvas.addEventListener('mouseup',up,true)

具体的事件代码

  • 当用户鼠标按下的时候,我们需要记录用户按下的x,y 坐标值,并保存,同时开锁
      function down(e){
        lock = true
        oldx = e.pageX - 10
        oldy = e.pageY - 10
    }
    
  • 接下来是move的代码,这个稍微多一点,耐心看,你能看懂
    • 当用户移动鼠标的时候,判断当前锁的状态
    • 记录用户移动是的 x,y 值
    • 设置 canvas 画线,线画old值,然后lineTo上去,两点去电一条线
    • 最后设置canvas的样式,别忘记 stroke
    • 最关键一步,将当前的新的x,y 重新复制给oldx和oldy
  function move(e){
    if ( !lock ) return
    let newX = e.pageX - 10
    let newY = e.pageY - 10
    ctx.beginPath()
    ctx.moveTo(oldx,oldy)
    ctx.lineTo(newX,newY)
    ctx.strokeStyle = linerColor
    ctx.lineGap = 'round'
    ctx.lineWidth = linw
    ctx.stroke()
    oldx = newX
    oldy = newY
  }
  • 最后鼠标抬起的时候关掉lock
   function up (){
    lock = false
}

相关文章

  • canvas 简单画图板

    start 我们用canvas要做这样一个东西 一个简单的触笔写字板,是不是很好,haha prepare 我们会...

  • canvas画图板要点总结

    Note ——https://github.com/AkaneTang/js-canvas-1[https://g...

  • HTML + CSS 实现画图板

    背景介绍 基本介绍数位画图板:简称数位板、画图板、绘图板、绘画板、手绘板等等,是计算机输入设备的一种,数位画图板同...

  • js相关html转canvas,canvas转pdf

    html转canvas html2canvas 安装 简单使用 拓展使用 canvas转pdf jsPDF 安装 ...

  • canvas浅尝

    简单了解canvas 1.什么是canvas HTML5 的 canvas 元素使用 JavaScript 在网页...

  • HTML5Canvas

    Canvas绘制简单图形 Canvas简单使用 canvas元素本省并不能实现图形绘制功能,绘制图形的工作需要有J...

  • 三、Canvas基本绘图

    Canvas绘图(二) 本章将学习Canvas绘图的以下技巧 裁剪区域 图象合成 简单的Canvas变换 一、设置...

  • canvas验证码的实现

    通过canvas画简单的验证码 #canvas{border: 1px s...

  • canvas实现圆形进度条动画

    先给大家看看效果图,然后在上代码。 1. canvas的HTML部分很简单就一个canvas标签 canvas画布...

  • 内裤总动员之程序猿的小常识--canvas

    canvas 画布的流程写法:最简单的写法 1:需要在项目中创建canvas.并给与宽高 2:canvas是依赖于...

网友评论

      本文标题:canvas 简单画图板

      本文链接:https://www.haomeiwen.com/subject/jogyuxtx.html