(转)第05节:Fabric.js的动画设置
凡是出色的Canvas库都少不了制作动画的方法,Fabric.js也不例外,它有着编写简单且功能强大的动画助手,这就是animate( )方法。
animate主要使用代码如下:
rect.animate('angle',360,{
onChange:canvas.renderAll.bind(canvas)
})
意思是设置了rect的动画是旋转到360度,onChange是动画的回调函数,可以绑定事件,那这里就是当canvas渲染完成时自动发生动画。
animate接收三个参数:
第一个参数是动画的属性,可以是任何用set( )方法设定的值;
第二个参数是发生变化的结束值(例如正方形从0度旋转到360度);
第三个参数是设置动画的细节属性,包括动画时间,回调函数,缓动效果,等等。
我们现在对动画有了基本的了解,我们先作一个简单的例子,让一个正方形旋转360度。
HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Fabric.js动画方法</title>
<script type="text/javascript" src="../fabric.js"></script>
</head>
<body>
<canvas width="800" height="800" id="canvas"></canvas>
<script type="text/javascript" src="./script.js"></script>
</body>
</html>
JS:
var canvas = new fabric.Canvas('canvas');
var rect = new fabric.Rect({
top:100,
left:100,
height:100,
width:100,
fill:'red',
});
rect.set('angle',0);//设置正方形的初始角度是0度
//下边设置了动画属性,让角度旋转到360度
rect.animate('angle',360,{
onChange:canvas.renderAll.bind(canvas)
})
canvas.add(rect);
animate( )方法还给我们提供了相对值的办法:
例如,你想让方形相对于现在的位置向左移动100px,你可以这样写代码:
t.animate('left', '+=100', { onChange: canvas.renderAll.bind(canvas) });
当然,方形相对于现在的角度逆时针旋转5度,你可以这样写代码:
rect.animate('angle', '-=5', { onChange: canvas.renderAll.bind(canvas) });
您还可以设置动画的持续时间和缓动效果,这些需要在animate( )方法的第三个参数中设置。例如:
rect.animate('left', 500, {
onChange: canvas.renderAll.bind(canvas),
duration: 1000,
easing: fabric.util.ease.easeOutBounce
});
(转)第05节:Fabric.js的动画设置的更多相关文章
- (转)第01节:初识简单而且强大的Fabric.js库
Fabric.js是一个功能强大和简单Javascript HTML5的canvas库.Fabric提供了很多可以互动的Canvas元素,还在canvas上提供了SVG的语法分析器. 你可以轻松的使用 ...
- (转)第04节:Fabric.js用路径画不规则图形
在Canvas上画方形.圆形.三角形都是很容易的,只要调用fabric对应的方法就可以了,但这些都是规则的图形,如果你想画一个不规则的图形,这时候你可以用fabric.js提供的路径绘图方法.所谓路径 ...
- HTML5 Canvas JavaScript库 Fabric.js 使用经验
首先,表明我的态度:采用 Flash 才是最优方案,不建议使用 HTML 5 的 Canvas 做一些生产/工业级的网页应用. Flash的优势一是浏览器支持好,二是代码成熟稳定.而HTML5 的 C ...
- fabric.js和高级画板
本文介绍fabric.js框架使用,以及使用fabricjs打造一个高级画板程序. 高级画板功能介绍 全局绘制颜色选择 护眼模式.网格模式切换 自由绘制 画箭头 画直线 画虚线 画圆/椭圆/矩形/直角 ...
- 用js实现动画效果核心方式
为了做好导航菜单,有时候需要在菜单下拉的时候实现动画效果,所以这几天就研究了研究如何用js实现动画效果,实现动画核心要用到两个函数,一个是setTimeOut,另一个是setInterval. 下边我 ...
- js双层动画幻灯
js双层动画幻灯 点击下载
- 【Lucene3.6.2入门系列】第05节_自定义停用词分词器和同义词分词器
首先是用于显示分词信息的HelloCustomAnalyzer.java package com.jadyer.lucene; import java.io.IOException; import j ...
- js运动动画
原文:js运动动画 今天简单的学了一下js运动动画,再此感谢慕课网的这位老师http://www.imooc.com/view/167,讲的很不错. 下面是我整理出来的结果. 知识点一:速度动画. 1 ...
- 好用的jquery.animateNumber.js数字动画插件
在做公司的运营报告页面时,有一个数字累计增加的动画效果,一开始,毫无头绪,不知如何下手,于是上网查资料,发现大多都是用的插件来实现的,那么今天,我也来用插件jquery.animateNumber.j ...
随机推荐
- js单击时页面的弹出
<!DOCTYPE html><html> <head> <script language="JavaScript&quo ...
- Vue开发实战
递归组件 关键是组件在模板内能调用自身,关键是name属性 首先我们先定义数据格式 list: [ { title: '标题1' }, { title: '标题2', children: [ { ti ...
- Java中volatile关键字及其作用是什么?
在 Java 多线程中如何保证线程的安全性?那我们可以使用 Synchronized 同步锁来给需要多个线程访问的代码块加锁以保证线程安全性.使用 synchronized 虽然可以解决多线程安全问题 ...
- 廖雪峰Java13网络编程-1Socket编程-2TCP编程
1. Socket 在开发网络应用程序的时候,会遇到Socket这个概念. Socket是一个抽象概念,一个应用程序通过一个Socket来建立一个远程连接,而Socket内部通过TCP/IP协议把数据 ...
- NX二次开发-UFUN旋转视图UF_VIEW_rotate_view
NX11+VS2013 #include <uf.h> #include <uf_view.h> #include <uf_obj.h> #include < ...
- 堡垒机介绍及实现 (使用python django实现)(一)
堡垒机介绍及实现 (使用python django实现)(一) 堡垒机的功能 我们在使用服务器的时候,通常的方式是 ssh user@ip 然后输入password 多人同时使用,就需要多个账号.这时 ...
- Spring随笔-bean装配-自动装配
Spring提供了三种装配方式 1.XML文件进行显式装配 2.java中进行显示装配 3.自动化装配 1.自动化装配的两种实现方式 1.组件扫描:Spring会自动发现应用上下文中创建的bean 2 ...
- AsyncCallback IAsyncResult
using System; using System.Threading; using System.Collections.Generic; using System.Windows.Forms; ...
- Spring源码由浅入深系列六 CreateBean过程
- Spring源码由浅入深系列五 GetBean
获取bean的过程如上图所示.下一章将继续图示讲解createBean的过程.