前端美术课

栏目: Html5 · 发布时间: 5年前

内容简介:同学们应该都学习过或听说过 canvas ,这都不重要,你们以为我要教你们 canvas 的 api 吗?不,这太蠢了,请出今天主角并且你不需要任何 canvas 使用经验就可以轻松上手这款绘图框架,当然你如果不愿意看我在这哔哔,发你一份文档自己去看吧《ZRender官方文档》
【班长】:起立!
【同学】:老师好!
【老师】:大家好,我是新来的前端美术老师,codexu!
复制代码

同学们应该都学习过或听说过 canvas ,这都不重要,你们以为我要教你们 canvas 的 api 吗?

不,这太蠢了,请出今天主角 二维绘图引擎 —— ZRender ,如果你听说过大名鼎鼎的 ECharts ,我们今天说的 ZRender 就是它的渲染器。

并且你不需要任何 canvas 使用经验就可以轻松上手这款绘图框架,当然你如果不愿意看我在这哔哔,发你一份文档自己去看吧《ZRender官方文档》

正式上课

安装 ZRender

直接使用 npm 安装,需要源码或使用 <script> 引入的通过 github 下载。

$ npm install zrender
复制代码

那个装不上报错的你就不会试试 cnpm、yarn 吗?不想用?你下个 nrm 然后 nrm use taobao。

引入 ZRender

import ZRender from 'zrender';
复制代码

在 HTML 引入的同学

<script src="./dist/zrender.js"></script>
复制代码

在 html 中写一个容器

<div id="main"></div>
复制代码

初始化 ZRender

初始化一块 300 宽高的画布,如果不传递 init 函数第二个参数,需要为容器设置宽高,画布会自动填满容器。

const zr = ZRender.init(document.getElementById('main'), {
  width: 300,
  height: 300
});
复制代码

我炙热的红心 :heart:

把书翻到《Heart》, ZRender 提供了 20 多种图形,来跟着老师一起写:

const heart = new ZRender.Heart({
  shape: {
      cx: 150,
      cy: 140,
      width: 50,
      height: 70
  },
  style: {
    fill: 'red'
  }
});
zr.add(heart);
复制代码
前端美术课

知识点

  • new ZRender.Heart 初始化一个心形
  • 参数 shape,相对于画布的左上角。
    • cx 圆心横坐标。
    • cy 圆心纵坐标。
  • 参数 style,定义各种样式。
  • 所有图形均继承于zrender.Displayable。
  • 使用画布实例的 add 方法,将定义好的心形挂载在画布上,每一个图形可以理解为PS中的涂层,后加入的图层会在先加入的图层上面。
  • 心脏复苏手术

    【同学】:老师你的心是死的!

    这位同学请出去...其他同学不要受到场外因素的影响。

    我们继续,为我的心绑定”电击“事件,然后执行循环动画。

    heart.on('click', function() {
      this.animate('shape', true)
        .when(100, {
          width: 60,
          height: 80
        })
        .when(600, {
          width: 50,
          height: 70
        })
        .start()
    })
    复制代码

    知识点

    • 之前说过的所有图形继承Displayable ,它又继承于Element,Element 继承自Animatable(动画)、Eventful(事件)。
    • 绑定事件第二个参数请不要使用箭头函数,尽量使用 this 操作动画元素。
    • aniamte 第一个属性是元素对象属性名,例如'shape'、'style'等。
    • aniamte 第二个属性是循环动画,默认为false。
    • 动画写完之后记得执行start()。

    下课

    外面那个同学进来吧。

    留个作业,《治疗好你们自己的那颗黑心》。

    还有闲着没事就不能给老师点颗 star 吗?

    github: github.com/codexu


    以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

    查看所有标签

    猜你喜欢:

    本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

    Distributed Algorithms

    Distributed Algorithms

    Wan Fokkink / The MIT Press / 2013-12-6 / USD 40.00

    This book offers students and researchers a guide to distributed algorithms that emphasizes examples and exercises rather than the intricacies of mathematical models. It avoids mathematical argumentat......一起来看看 《Distributed Algorithms》 这本书的介绍吧!

    XML 在线格式化
    XML 在线格式化

    在线 XML 格式化压缩工具

    Markdown 在线编辑器
    Markdown 在线编辑器

    Markdown 在线编辑器

    HEX CMYK 转换工具
    HEX CMYK 转换工具

    HEX CMYK 互转工具