Javascript 动画初探(实现)

作者:mingcheng 来源:gracecode.com 时间:2009-02-06 15:56:00 

说完了理论,我们来做点实事。这篇文章将介绍使用 Javascript 实现的动画组件。

下面记录下当时编写这个组件的考虑的些问题,对技术细节感兴趣的朋友,可以到这里参看源代码

  1. 需要几个回调函数控制初始化、动画运行时、动画完成的情况

  2. 将动画精确到运行了几帧

  3. 使用 setInterval 还是 setTimeout,最后还是选择了 setInterval(详细

  4. 不管元素需要更改那些属性,提供相应公式即可,但这可能带来性能问题

  5. 要可扩展、而且稳定

这个动画组件的用法简要的说明下,首先我们要确定元素从哪里移动(begin)到哪里(final),我们可以将两个信息绑定到一起,比如

var position = {from: 0, to: 100};

然后实例化个动画组件,指定动画的运行时长(duration)以及动画运行类型(tween)

var motion = new Motion(duration, tween);

另外,我们当然希望在动画初始化、开始以及进行和结束时候做额外的事情,那么加入相应 的回调:


// 初始化motion.onInit = function() {    // ...};// 开始motion.onStart = function() {    // ...};// 动画运行时motion.onTweening = function() {    // 需要获取某个时间点的坐标时,可以使用 this.equation 方法    var p = this.equation(position.from, position.to);};// 动画完成时motion.onComplete = function() {    // ...};

当一切准备就绪,那么就可以开始动画了

motion.start();

当然,任何时候我们都希望能停止动画,那么就

motion.stop();

那么我们就可以通过这个动画组件完成常见的动画效果了。这里有个 DEMO,看下这个动画组件的实际使用例子。按照传统,代码可以在这里打包下载中国as之家友情提示:.7z压缩文件,电脑安装7z软件后可以解压)。

附,参考资源:YUI 的动画组件mootools 的动画组件

-- 未完待续 --

标签:动画,组件,JavaScript,时间
0
投稿

猜你喜欢

  • 你是真正的用户体验设计者吗? Ⅵ

    2008-04-19 18:23:00
  • 快速掌握怎样选择准备安装的 MySQL版本

    2008-12-17 16:42:00
  • ASP 下载时重命名已上传文件的新下载文件名的实现代码

    2012-11-30 20:33:45
  • Opera下cloneNode的bug

    2007-11-23 11:40:00
  • oracle 日期函数

    2010-07-23 13:32:00
  • 什么是XSLT,什么是XPath

    2008-01-21 13:12:00
  • 懒懒交流会:ClassName的长命名 VS. 短命名

    2009-11-28 16:08:00
  • SQL Server 2005数据转换服务设计问题集锦

    2008-12-26 17:29:00
  • MySQL Explain命令用于查看执行效果

    2009-02-27 15:30:00
  • 好的产品设计并非始于图片,而是对人的理解

    2009-08-02 20:25:00
  • XHTML1.0与HTML兼容指引16条[译]

    2009-06-10 14:45:00
  • ASP应用之教你使用模板

    2008-10-15 13:09:00
  • 2008年Logo设计10大趋势

    2008-02-28 13:06:00
  • MySQL最新漏洞分析

    2012-07-11 15:41:10
  • 图片链接轮换代码, 支持预载

    2007-10-16 19:57:00
  • 首页访问感受提升三步曲

    2007-12-13 20:36:00
  • xml文件调用css

    2008-09-05 17:12:00
  • Mysql Innodb引擎优化(参数篇)

    2010-05-02 19:57:00
  • Web设计师的出路问题

    2009-06-08 13:07:00
  • 学会sql数据库关系图(Petshop)

    2012-10-07 10:34:49
  • asp之家 网络编程 m.aspxhome.com