美文网首页
18-进阶:Canvas 画板

18-进阶:Canvas 画板

作者: 格林姆大师 | 来源:发表于2018-05-14 00:44 被阅读0次

本节知识点

  • JS知识点

  1. 获取标签的方法之一(id):document.getElementById(id)
    <div id="canvas"></div>

    <script>
        var div = document.getElementById('canvas')
    </script>
  1. 鼠标按下、移动、松开事件
    <script>
        var div = document.getElementById('canvas')
        //鼠标按下事件
        div.onmousedown = function(downEvent){
            console.log(1)
            var x = downEvent.clientX
            var y = downEvent.clientY
        }
        //鼠标移动事件
        div.onmousemove = function(moveEvent){
            console.log(2)
        }
        //鼠标松开事件
        div.onmouseup = function(upEvent){
            console.log(1)
        }
    </script>

以上事件发生时生成的所有信息都存在 function 的参数里;比如位置信息在 clientX、clientY 里;

  1. 给创建的标签添加样式的方法之一
     divA.style = "width: 6px; height: 6px;" + "background: black; border-radius: 3px;" 
+ "position: absolute; left: " + (x-3)+"px;"+"top: "+(y-3)+"px;"

此种方式添加的为 行内 样式

  1. 使用div.onmousemove作为画笔时的一个问题:mousemove 的触发是比较明显的离散的,如下图:
    js-18-01.png
    左右为鼠标慢速移动时,中间为快速移动时;也就是说 div 中的 mousemove 事件作为画笔有问题。
    如何解决?????
    此处引入一个新的 html 标签 <canvas>
  • CSS知识点

  • HTML知识点

  1. <canvas>标签

<canvas id="tutorial" width="150" height="150"></canvas>

<canvas> 看起来和 <img> 元素很相像,唯一的不同就是它并没有 src 和 alt 属性。实际上,<canvas> 标签只有两个属性—— widthheight。这些都是可选的,并且同样利用 DOMproperties 来设置。当没有设置宽度和高度的时候,canvas会初始化宽度为300像素和高度为150像素。该元素可以使用CSS来定义大小,但在绘制时图像会伸缩以适应它的框架尺寸:如果CSS的尺寸与初始画布的比例不一致,它会出现扭曲。
比如:

<canvas id="canvas" width="300px" height="300px"></canvas>

<style>
#canvas{
  height: 1000px;
}
</style>

虽然在 css 只指定了 height ,但是 width 会根据width="300px" height="300px"等比例缩放,就如 <img> 标签一样。
使用 canvas 的基本操作:

<body>
    <canvas id="canvas" width="300px" height="300px"></canvas>
    
    <script>
        var canvas = document.getElementById('canvas');

        var context = canvas.getContext('2d'); //获取 canvas 上下文
        context.fillStyle = 'red';
        context.fillRect (10, 10, 55, 50);
    </script>
</body>
-----------------------
#canvas{
    background-color: burlywood;
    display: block; //貌似没啥效果
    height: 100vh; //不建议使用 css 设定宽高,会等比例缩放
}
js-18-02.png

相关文章

  • 18-进阶:Canvas 画板

    本节知识点 JS知识点 获取标签的方法之一(id):document.getElementById(id) 鼠标按...

  • canvas2

    canvas简易画板

  • Canvas画板

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

  • canvas2-text

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

  • canvas好文章

    CANVAS 一个非常好的canvas进阶文章

  • JavaScript画板-canvas

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

  • canvas画板所学

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

  • canvas-画板

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

  • canvas画板工具

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

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

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

网友评论

      本文标题:18-进阶:Canvas 画板

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