美文网首页
canvas画板所学

canvas画板所学

作者: 吴一晏 | 来源:发表于2019-02-18 22:23 被阅读0次

1.学到的新API
1.1 鼠标监听
document.onmousedown = function (xxx) {} //鼠标按下
document.onmousemove = function (xxx) {} // 鼠标移动
document.onmouseup = function (xxx) {} //鼠标松开
1.2 获取鼠标坐标(位置)
var x = xxx.clientX, var y = xxx.clientY

  1. 新元素 canvas
    2.1 <canvas id="canvas"></canvas> 默认样式为inline-block。它只有width和height两个属性。当没有设置的时候,它初始化成宽300px高150px。
    2.2 设置全屏canvas:
    function autosetcanvas(canvas){
    setcanvasSize()
    window.onresize = function(){
    setcanvasSize()
    }
    function setcanvasSize(){
    var pageWidth = document.documentElement.clientWidth;
    var pageHeight = document.documentElement.clientHeight;
    canvas.width = pageWidth;
    canvas.height = pageHeight;
    }
    }
    html的body本身有margin,可以把body的margin设置成0,这样就不会有鼠标点击画板的坐标和实际出现的坐标不一样的bug。
    2.3 画图案
    画圆:function drawCircle(x,y,radius){
    context.beginPath()
    context.fillStyle = 'black'
    context.arc(x,y,radius,0,Math.PI*2)
    context.fill()
    }
    画线:function drawLine(x1,y1,x2,y2){
    context.beginPath();
    context.strokeStyle = 'black'
    context.moveTo(x1,y1)
    context.lineWidth = 5
    context.lineTo(x2,y2)
    context.stroke()
    context.closePath()
    }
    fill是填充,stroke是描边。先给颜色,再开始画。 其他图案绘制可参考Canvas MDN

2.4 消除鼠标移动过快,画出来的线不连续。 在onmousedown里var一个初始点,点的坐标就是鼠标的x,y坐标。在onmousemove里var一个移动点,坐标也是鼠标的x,y。 然后用这两个点画一条线x1=初始点.x y1=初始点.y x2=移动点.x y2=移动点.y 最最重要的一句,要使初始点=移动点。不然会出现初始点只有一个和无数个一动点连线的bug。

  1. 设置橡皮擦和画笔 使用状态


    ![![3.jpg](https://img.haomeiwen.com/i16030088/9be5b77097c17e7b.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ](https://img.haomeiwen.com/i16030088/4053a55d9c5cd5ed.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

    设置两个button用一个div包起来。 div要设置成display:fixed。 然后在className为actions是 设置橡皮擦可见。在className为cations x时,设置画笔可见。

相关文章

  • canvas画板所学

    1.学到的新API1.1 鼠标监听document.onmousedown = function (xxx) {}...

  • canvas2

    canvas简易画板

  • Canvas画板

    一、实现思路 (非触屏设备) 监听鼠标事件①按下鼠标:onmousedown;滑动鼠标:onmousemove;松...

  • canvas2-text

    canvas画板结合JS事件实现写字效果

  • JavaScript画板-canvas

    1.创建画布节点 2.获得画布节点 3.获得绘画对象 4.绘制画布底色 5.绘制直线 6.绘制圆 7.绘制实心文本...

  • canvas-画板

    闲来无趣写了个网页版的画图 Title *{padding:0; margin:0...

  • canvas画板工具

    canvas画板工具 好久不见,先来一个美美的么么哒~~~ 需要注意的几点我们之前说的,不能在css中固定canv...

  • HTML5(六)canvas 矩形、路径、画板功能

    一.绘制矩形 1.什么是canvas canvas标签相当于一个画板; canvas的宽高不要用css去定义,直接...

  • Canvas画板---手机上也可以用的画板

    学习制作画板之前,我们先来了解一下canvas标签一.canvas标签1.canvas标签与img标签相似,但是c...

  • 2018-04-27 canvas入门

    1. MDN canvas只有两个属性,width和height 2. 奕泽画板 canvas相关API DOM元素

网友评论

      本文标题:canvas画板所学

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