(转)第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
});
时间: 2024-10-22 01:35:37

(转)第05节:Fabric.js的动画设置的相关文章

(转)第04节:Fabric.js用路径画不规则图形

在Canvas上画方形.圆形.三角形都是很容易的,只要调用fabric对应的方法就可以了,但这些都是规则的图形,如果你想画一个不规则的图形,这时候你可以用fabric.js提供的路径绘图方法.所谓路径绘图就是用点和线的移动的方式进行绘图.通过对 线.曲线.弧的应用你可以非常复杂的图形. 我们先来看一段的代码: var canvas = new fabric.Canvas('canvas'); var path = new fabric.Path('M 0 0 L 200 100 L 170 20

fabric.js和高级画板

本文介绍fabric.js框架使用,以及使用fabricjs打造一个高级画板程序. 高级画板功能介绍 全局绘制颜色选择 护眼模式.网格模式切换 自由绘制 画箭头 画直线 画虚线 画圆/椭圆/矩形/直角三角形/普通三角形/等边三角形 文字输入 图片展示及相关移动.缩放等操作 删除功能 (文末附:画板GitHub地址&fabric.js使用秘籍) 功能截图如下: 动态效果图: fabric.js介绍 fabric.js是什么fabric.js是可以简化canvas编写的js库,提供canvas缺少的

强大的CSS3/JS:帧动画的多种实现方式与性能对比

Web动画形式 首先我们来了解一下Web有哪些动画形式 1\. CSS3动画 Transform(变形) Transition(过渡) Animation(动画) 2\. JS动画(操作DOM.修改CSS属性值) 3\. Canvas动画 4\. SVG动画 5\. 以Three.js为首的3D动画 以上各种动画形式都可以制作出一种类型的动画,那就是帧动画,也叫序列帧动画,定格动画,逐帧动画等,这里我们统一用帧动画来表述. 这里推荐一下我的前端学习交流扣qun:767273102 ,里面都是学习

js运动动画

今天简单的学了一下js运动动画,再此感谢慕课网的这位老师http://www.imooc.com/view/167,讲的很不错. 下面是我整理出来的结果. 知识点一:速度动画. 1.首先第一步实现速度运动动画,封装一个函数,用到的知识是setInterval(function(){ oDiv.style.left=oDiv.offsetLeft+10+"px"; },30). 对于这里为什么要用到offsetLeft,我特意百度了一下,http://www.cnblogs.com/wo

js双层动画幻灯

js双层动画幻灯 点击下载

JS实现动画的四条优化方法

JS实现动画的四条优化方法 1)如果使用的是setTimeout实现的轮询动画,在每一次执行方法之前需要把前面的设置的定时器清除掉 2)为了防止全局变量的污染,我们把定时器的返回值赋值给当前操作元素的自定义属性;这样做还有一个好处,就是如果当前动画没有完成,执行了下一个动画,由于我们每一次都是给自己的自定义属性,那么下一个动画开始的时候默认的把当前的动画的结束了; 3)关于作用域累积的问题->在move中编写一个_move来执行我们的动画操作,_move里面不需要传递参数,每一次都用move中存

fabric.js的简单上手及基于fabric.js的canvas切图工具:1、基本使用及配置

参考链接 Fabric.js 简单介绍和使用 简介 Fabric.js是一个可以简化canvas程序编写的库. Fabric.js为canvas提供所缺少的对象模型, svg parser, 交互和一整套其他不可或缺的工具.基于MIT协议开源,在github上有许多人贡献代码. 为什么选择fabric.js 手上的项目必须使用canvas 原生的canvas API不够友好 用fabric.js实现切图用户体验更好 为项目以后的迭代留下扩展的余地 简单上手 请参考文章开头的参考链接 这里主要介绍

js学习总结----设置元素的样式值setcss

在JS给元素设置样式属性值,我们只能通过curEle.style[attr] = value 这种方式给元素设置行内样式 下面封装一个给当前元素的某一个样式属性设置值的方法(增加在行内样式上的):setCss() function setCss(curEle,attr,value){ //在JS中设置float样式值也需要处理兼容 if(attr==="float"){ curEle["style"]["cssFloat"] = value; c

UIView动画设置参数

在动画方法中有一个option参数,UIViewAnimationOptions类型,它是一个枚举类型,动画参数分为三类,可以组合使用: 1.常规动画属性设置(可以同时选择多个进行设置) UIViewAnimationOptionLayoutSubviews:动画过程中保证子视图跟随运动. UIViewAnimationOptionAllowUserInteraction:动画过程中允许用户交互. UIViewAnimationOptionBeginFromCurrentState:所有视图从当