最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • canvas深入浅出(一)| 小测免费学

    正文概述 掘金(枫景)   2021-04-23   559

    背景

    canvas是为了解决页面只能显示静态图片而出现的一种可以使用JavaScript绘制的HTML标签,它可以接受两个参数width和height(原来有三个,还有一个moz-opaque控制透明度,已经废弃了)

    注意事项:不同于img标签的自闭和,canvas必须要有闭合标签;能直接在canvas标签上设置宽高尽量直接在标签属性设置宽高,其次可以通过js来设置,尽量不要通过css样式来设置宽高,可能会出现拉伸等情况,这一点MDN也给出了说明

    除了canvas之外你可能还会听过svg,svg是一种使用xml定义的矢量图,而canvas是使用JavaScript控制绘制出来的位图

    canvas深入浅出(一)| 小测免费学

    由于主题是canvas,所以这里我们之说canvas,不聊svg

    用途

    canvas最常用的功能是用来绘制图表,比如我们常用的ECharts图标库底层就是使用的canvas,我手上最近的一个项目中就用到了ECharts

    canvas深入浅出(一)| 小测免费学

    这是他的DOM文档体现

    canvas深入浅出(一)| 小测免费学

    由于是通过JavaScript驱动绘制的,所以数据都是可以动态传入的,这是静态图片(jpg/png……)所无法比拟的

    此外canvas可以用来制作游戏,这是我以前玩过的魔方游戏(虽然体验完全不如实体)

    canvas深入浅出(一)| 小测免费学

    还可以用来做活动页面,很多商家都会用这种形式来做营销活动

    canvas深入浅出(一)| 小测免费学

    你可能还会再某些博客中看到这样的特效,他也是canvas实现的

    canvas深入浅出(一)| 小测免费学

    基本用法

    收先需要在HTML文档中声明canvas标签,标签可以添加后备内容,以防止浏览器不兼容canvas,后备内容可以是一串文本、一张图片或者是动态提娜佳的内容

    <canvas id="canvas">
    	很遗憾你的浏览器不支持canvas
    </canvas>
    
    <canvas id="canvas">
    	<img src="./img.png" />
    </canvas>
    

    在使用canvas之前,我们需要获取canvas的上下文

    const canvas = document.getElementById('canvas') 
    // 标注id属性的元素会自动创建全居变量,可以直接使用id操作,但是不推荐
    const context = canvas.getContext('2d')
    

    上下文的类型有三种,分别是

    • 2d(本小册所有的示例都是 2d 的):代表一个二维渲染上下文
    • webgl(或"experimental-webgl"):代表一个三维渲染上下文
    • webgl2(或"experimental-webgl2"):代表一个三维渲染上下文;这种情况下只能在浏览器中实现 WebGL 版本2 (OpenGL ES 3.0)

    在获取路径之后,我们就可以通过上下文的api来进行绘制路径了,比如你可以使用context.arc(x, y, r,angle1, angle2, direction)来绘制一个圆,其中参数的含义为:

    • x:圆心x坐标
    • y:圆心y坐标
    • r:半径
    • angle1:起始角度,默认水平向右,也就是三点钟
    • angle2:结束角度,从开始角度旋转的度数
    • direction:旋转方向,true是逆时针,false是顺时针
    context.beginPath();       // 起始一条路径,或重置当前路径
    context.arc(100, 100, 50, 0, Math.PI * 2, true);  // 曲线
    context.closePath();       // 闭合曲线
    context.fillStyle = 'rgb(0,0,0)'; // 设置填充样式
    context.fill();            // 填充
    

    效果如下

    canvas深入浅出(一)| 小测免费学

    这一节我们大体介绍了canvas的用途,下一节开始我们就开始讲解canvas的具体使用

    本文正在参与「掘金小册免费学啦!」活动, 点击查看活动详情


    起源地下载网 » canvas深入浅出(一)| 小测免费学

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元