• Canvas


    Canvas是一个可以使用脚本(通常是JavaScript )来绘制图形的HTML元素, <canvas> 元素的基本语法结构是:

    <canvas width="宽度" height="高度" id="ID">
    </canvas>
    

    canvas的属性:

    (1)width:  

    //获取宽度
    variable = HTMLCanvasElement.width
    //设置宽度
    HTMLCanvasElement.width = number value
    

     (2)height:

    //获取高度
    variable = HTMLCanvasElement.height
    
    //设置高度
    HTMLCanvasElement.height = number value
    

     canvas的方法:

    (1)getContext()

    getContext()方法用于返回 canvas 的上下文,如果上下文没有定义,则返回null,其语法结构是:

    variable = HTMLCanvasElement.getContext(contextType)

    上下文的取值有:

    1. '2d',此时将建立一个 CanvasRenderingContext2D 二维渲染上下文对象
    2. 'webgl',此时将建立一个 WebGLRenderinContext 三维渲染上下文对象

     ① CannvasRenderingContext2D:

      CanvasRenderingContext2D对象提供了2D渲染背景用来绘制 Canvas 元素,为了获取这个对象,需要canvas 对象上调用getContext() 方法,并且提供"2d"参数:

    //1.获取Canvas元素(画布)
    var canvasEle = document.getElementById('canvas');
    
    //2.获取CanvasRenderingContext2D对象(工具箱) 
    var ctx = canvasEle.getContext('2d');

    CannvasRenderingContext2D的方法:

    1.绘制矩形:

        ① strokeRect()方法:strokeRect()方法用于绘制矩形框,其语法结构是

    CanvasRenderingContext2D.strokeRect(x,y,width,height)

        ② clearRect()方法:用于擦除指定区域所绘制的内容

    CanvasRenderingContext2D.clearRect(x,y,width,height)

        ③ fillRect()方法:用于绘制填充矩形

    CanvasRenderingContext2D.fillRect(x,y,width,height)

    2.描边和填充

    (1)stroke属性:用于设置描边颜色,默认值#000

    CanvasRenderingContext2D.strokeStyle = string color

    颜色的表示方法有:

      英文名称

      十六位进制代码,如#f00#89af56 RGB模式,如rgb(255,0,0)

      RGBA模式,如rgba(255,0,0,0.7)

    (2) fillStyle属性:用于设置填充颜色

    CanvasRenderingContext2D.fillStyle = string color

    3.文本的描边与填充:

    (1)fillText方法:用于绘制填充文本

    canvasRenderingContext2D.fillText(text,x,y)

    (2)strokeText()方法:用于绘制描述文本:

    canvasRenderingContext2D.strokeText(text,x,y)

    (3)font属性:用于设置文本样式:

    canvasRenderingContext2D.font = "字号 字体"

    默认字号为10像素;默认字体 sans-serif

    文本样式与CSS font规范相同

    (4)textAlign属性:用于设置文本的对齐方式:

    canvasRenderingContext2D.textAlign = 'left|center|right'

    (5)measureText()方法:获取文本对象

    MeasureText canvasRenderingContext2D.measureText(‘内容’)
    
    //该对象存在width属性,用于获取文本对象的宽度
    int MeasureText.width

    window对象

    1 requestAnimationFrame()方法:

      window.requestAnimationFrame()方法是浏览器用于定时循环操作的一个方法,类似于setTimeout() 方法,主要用途是按帧对于网页进行重绘。其目是为了让各种网页动动效果(DOM画、Canvas动画等)能够有统一的刷新机制,从而节省系统资源。requestAnimationFrame()的优势是     充分利用显示器的刷新机制,所以动画就不再会出现卡顿的现象了。一旦页面不处于浏览器的当前标     签,就会自动停止刷新。其语法结构是:

    timerId = window.requestAnimationFrame(animation);

    2 cancelAnimationFrame()方法:

      cancelAnimationFrame()方法用于取消一个先前通过调用window.requestAnimationFrame()方法中生成ID,其语法结构是:

    window.cancelAnimationFrame(requestId)

    浏览器兼容问题:

    cancelAnimationFrame = window.cancelAnimationFrame ||
    window.mozCancelAnimationFrame();
  • 相关阅读:
    控制element表格禁用选择
    深度拷贝
    VScode修复eslint报错,保存的时候自动格式修正
    关于route监听
    PAT 1030 完美数列
    PAT1029 旧键盘(C完全正确)
    PAT 1028 人口普查
    PAT 1016
    PAT:1013
    PAT :1012 数字分类
  • 原文地址:https://www.cnblogs.com/codexlx/p/12519863.html
Copyright © 2020-2023  润新知