注1* SVG由W3C制定的一个开放式标准,基于XML实现的用于描述二维矢量图形的图形格式。目前几乎所有主流浏览器均己支持。
注2* 这个库的作用是将SVG矢量图中的一些基本元素(目前仅支持路径Path和线Line)以线性动画的方式展示出来。 类似于PS4首页所展示的动画效果。
如何使用
创建一个Walkway实例,传入一些参数对象。当你想开始动画的时侯调用 .draw 命令即可。提供一个可选的回调函数,当动画结束时调用。
// 创建一个实例var svg = new Walkway(options);// 开始绘制,回调函数可选svg.draw(callback);// 传入一个可选的目标SVG对象var svg = new Walkway({ selector: '#test'});// 改变默认参数var svg = new Walkway({selector: '#test',duration: '2000',// can pass in a function or a string like 'easeOutQuint'easing: function (t) {return t * t;}});svg.draw();// 如果你不想改变默认参数,你可以// 通过一个选择字符串直接构造var svg = new Walkway('#test');svg.draw(function () {console.log('Animation finished');});
参数
selector(必填) - 需要动画的父元素,通常是一个特定的svg元素。
duration - 动画运行时间,以毫秒为单位,默认400.
easing - 补间动画函数名。默认为"easeInOutCubic",你也可以提供自己的被音动画函数方程。
Easing
补间动画,目前支持的被音动画效果。
/** Easing Functions - inspired from http://gizma.com/easing/* only considering the t value for the range [0, 1] => [0, 1]*/EasingFunctions = {// no easing, no accelerationlinear: function (t) { return t },// accelerating from zero velocityeaseInQuad: function (t) { return t*t },// decelerating to zero velocityeaseOutQuad: function (t) { return t*(2-t) },// acceleration until halfway, then decelerationeaseInOutQuad: function (t) { return t<.5 ? 2*t*t : -1+(4-2*t)*t },// accelerating from zero velocityeaseInCubic: function (t) { return t*t*t },// decelerating to zero velocityeaseOutCubic: function (t) { return (--t)*t*t+1 },// acceleration until halfway, then decelerationeaseInOutCubic: function (t) { return t<.5 ? 4*t*t*t : (t-1)*(2*t-2)*(2*t-2)+1 },// accelerating from zero velocityeaseInQuart: function (t) { return t*t*t*t },// decelerating to zero velocityeaseOutQuart: function (t) { return 1-(--t)*t*t*t },// acceleration until halfway, then decelerationeaseInOutQuart: function (t) { return t<.5 ? 8*t*t*t*t : 1-8*(--t)*t*t*t },// accelerating from zero velocityeaseInQuint: function (t) { return t*t*t*t*t },// decelerating to zero velocityeaseOutQuint: function (t) { return 1+(--t)*t*t*t*t },// acceleration until halfway, then decelerationeaseInOutQuint: function (t) { return t<.5 ? 16*t*t*t*t*t : 1+16*(--t)*t*t*t*t }}
将来计划
回复 (0)
微信扫码 立即评论
