`
子衿青青
  • 浏览: 110888 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

dojo 1.6 官方教程: 手把手教你创建HTML5 JavaScript 动画特效

 
阅读更多
在本教程中我们将会探索Dojo工具包提供的JavaScript特效,这些特效将给你的页面和网站创造酷炫的效果!


难度: 初学者
所需Dojo版本: 1.6

作者: Bryan Forbes

译者: feijia (tiimfei@gmail.com)

在前面的一系列教程中,我们已经学习了如何使用并操作DOM节点,处理DOM事件。但是当我们在对DOM节点进行操作时,有些转换会显得突兀:例如删除一个节点,在用户看来它就会在页面上突然消失,有时这种页面上的突然变化会误导用户。使用Dojo提供的特效工具,我们可以构建出更加连贯的用户体验,并且让我们的应用程序显得更加精致和完美。如果我们进一步使用dojo.fx包里的更多功能,我们能够把一系列特效串联起来,创造出非常酷的动态用户体验。


渐入和渐出效果 (Fade)


最常见的一种特效就是DOM节点的渐入与渐出(淡入与淡出)。这个效果在网页上会经常用到,因此dojo把它包含Dojo的基础包中。(译者:表示你不需要使用dojo.require引用任何包)我们可以使用这个效果让节点在页面的出现和消失显得连续和平滑。 下面是使用dojo创建渐入渐出效果的示例代码:


真正制造渐入渐出方法的代码只需要一行,就是dojo.fadeOut 和dojo.fadeIn。 Dojo里所有的动画特效函数都只接受一个参数对象,该参数对象包含了一系列属性来设定所需动画效果。其中 最重要的属性之一就是 node。 node属性值是一个DOM节点或者是一个DOM 节点的ID (字符串)。 另一个参数 duration,则指定了这个效果的播放要持续的时间,单位是毫秒。如果不指定duration,则默认的播放时间是350毫秒。当然不同的动画效果有不同的参数,不过对于淡入淡出特效而言,这两个参数就足够了。


Dojo的动画特效函数返回值是一个dojo.Animation 对象。这个对象有几个方法: play, pause, stop, status 和gotoPercent 从名字可以看出这几个方法是用来控制动画效果的播放的。 动画对象刚创建时并不会立即播放,需要调用play方法才开始播放。


查看示例:

http://dojotoolkit.org/documentation/tutorials/1.6/effects/demo/fade.html



擦除效果(Wiping)


另一种常见特效是擦除效果: 它实际上是指改变一个节点的高度,而让其内容逐渐显示或者消失。效果有点类似与雨刷在挡风玻璃上划过留下的痕迹。

请看下面的示例代码




和fadeIn fadeOut不同,使用擦除函数需要先引用dojo.fx包。另一个需要注意的是我们在这个例子里给目标节点“wipeTarget" 增加了一个css类wipe, 这个类设定了节点的height:auto, 这是因为wipeIn函数的效果是从节点的现有高度变化到其自然高度(即height:auto)

查看示例


滑动


前面我们看到了淡入淡出和擦除效果,这两个特效都不能改变节点在页面上的位置。如果想要节点滑动起来,那么就要使用dojo.fx.slideTo 。

滑动效果可以创造一种动态感,有时也用来表示某种加载进度。dojo.fx.slideTo函数可以在参数指定节点的目标位置(页面上的left和top位置) 并把这个节点滑动到目标位置。



查看示例: 点击打开链接


动画事件


前面我们提到过,Dojo里的所有的动画特效函数都会返回一个dojo.Animation对象。这个对象不仅提供了方法控制动画的播放暂停,同时还提供了一系列的事件供我们监听,从而使我们可以在动画播放前,播放中,播放后做出不同的响应动作。最重要也是最常用的两个事件是:beforeBegin 和 onEnd
下面我们看一段使用动画事件的示例代码:



这段示例代码里我们注意到添加beforeBegin 和onEnd 这两个事件的回调方法的方式不太一样。beforeBegin 的处理方法直接作为参数传递给了slideTo函数。而onEnd是使用dojo.connect 连接的。这是因为对某些动画特效beforeBegin处理函数是在对象创建时连接的,如果我们通过dojo.connect 来注册我们的beforeBegin处理函数,则我们的处理函数会在该动画自己的beforeBegin处理函数之后被调用。因此作为参数传入的方法保证了我们的处理函数可以被最先执行。


查看示例


链式调用(Chaining)


Dojo 动画特效的强大之处还在于可以使用链式调用将许多不同的特效串联起来执行.实际上通过监听onEnd事件,我们就可以做到在前一个动画执行之后再执行另一个动画,但是这样并不是很方便。而使用dojo.fx.chain我们可以非常简单设定一系列的动画连续执行。 让我们再来看一个例子


从这段代码可以看到,我们使用 dojo.fx.chain方法,传入一个由多个动画特效组成的数组,并在chain方法返回的dojo.Animation对象上执行play,这一系列动画将会逐一执行。

查看示例



合并执行


chain方法使一系列动画特效逐一执行,而dojo.fx.combine则可以让一组动画同时执行。 在前面的例子中,是先淡入,然后滑动,最后淡出。使用combine我们可以让这三个效果同时执行。 combine方法会返回一个新的dojo.Animation对象代表合并后的新动画。这个动画对象的onEnd事件将在被合并的动画全部都执行完成后被触发。


这个例子里,我们通过combine把淡入效果和滑动效果同时执行。

通过使用chain和combine,我们可以用几种简单效果组合出很不错的动画特效。同时chain和combine的返回值仍然是一个animation对象,也就是说它们还可以被进一步的串联和合并,因此可以创造出非常精巧复杂的效果。


小结

使用Dojo的特效方法,你可以快速的给页面加上有趣的动画效果。dojo 基础包中已经包含了淡入淡出方法dojo.fadeIn dojo.fadeOut,而通过require dojo.fx 你还可以使用擦除和滑动效果。结合chain和combine 这两个组合方法,可以构建出高级的动画效果。

当然如果你还想更进一步的控制动画的效果,例如,像wipeOut一样调整某个DOM节点的高度,但是又不把它完全缩减到0(完全擦除),或者通过动画来调整背景色的渐变? Dojo提供了一个更加通用和强大的dojo.animateProperty对象来实现。 我们会在未来的教程中详细介绍。


参考(译者)

这个教程比较简单,提供的示例也是示意性质的。下面我找了一些使用dojo.fx 做出的比较复杂比较炫的特效示例。 供读者参考:


用dojo实现的复杂文本动画效果:

http://gruppler.dojotoolkit.org/

画面切分“阿凡达”特效:

http://demos.davidjs.com/avatar/


分享到:
评论

相关推荐

    Requirejs异步加载Dojo1.6

    Dojo是一个强大的JavaScript工具包,提供了一整套用于构建富互联网应用(RIA)的功能,包括UI组件、数据管理、动画效果以及模块化开发。Dojo 1.6版本是在2011年发布,它引入了AMD(Asynchronous Module Definition)...

    dojo 1.6 api

    dojo 1.6 api包含dojo、dojox、dijit等3个部分的api。

    dojo1.6关于DOM相关操作的官方介绍

    在Dojo 1.6版本中,DOM操作是其核心特性之一,它允许开发者高效地创建、修改和管理HTML元素。以下是对Dojo 1.6 DOM相关操作的详细说明: 1. **dojo.query**: 这是Dojo提供的一个强大选择器,类似于jQuery的`$`函数...

    手把手教你创建HTML5JavaScript动画特效

    在前面的一系列教程中,我们已经学习了如何使用并操作DOM节点,处理DOM事件。但是当我们在对DOM节点进行操作时,有些转换会显得突兀:例如删除一个节点,在用户看来它就会在页面上突然消失,有时这种页面上的突然...

    dojo1.6官网

    标题中的"dojo1.6官网"表明我们关注的是Dojo框架的1.6版本。这个版本在当时是相当成熟且广泛使用的,它包含了Dojo的核心组件、模块化系统、UI部件以及许多其他实用工具。 Dojo 1.6 的主要特点和知识点包括: 1. **...

    dojo v1.6 官方最新版同步下载.zip

    我们可以推测Dojo 1.6可能增强了对CSS3新特性的支持,比如过渡效果(Transitions)、动画(Animations)、多列布局(Multi-column Layout)、边框图像(Border Images)等,使开发者能够利用这些现代CSS特性来创建...

    dojo 官方教程 中文翻译

    Dojo 是一个强大的JavaScript工具库,它为Web开发提供了丰富的功能和组件,包括AJAX、DOM操作、事件处理、动画效果、模块化编程等。这个"dojo 官方教程 中文翻译"是针对Dojo框架的全面指南,帮助中文用户更好地理解...

    dojo权威入门教程

    《dojo权威入门教程》是一本专注于JavaScript库Dojo Toolkit的学习指南,主要面向Java开发者或对Web前端技术感兴趣的人员。Dojo Toolkit是一个强大的JavaScript框架,它提供了丰富的组件、工具和API,帮助开发者高效...

    dojo精品中文教程(全)

    dojo精品中文教程 Dojo.1.0 Practice Note [1] 什么是dojo 选择dojo的理由 AJAX架构之Dojo篇 Adding Ajax中文版 (DoJo) DOJO学习笔记(七)-日期控件DropdownDatePicker和DatePicker DOJO常用的验证函数 ...

    dojo教程 dojo 教程大全

    精通Dojo(中文版),之前自己学习的时候看的,质量挺高,百度网盘地址

    Dojo框架使用教程

    Dojo框架是一个强大的JavaScript库,它为Web开发提供了丰富的功能,包括UI组件、数据管理、AJAX通信以及模块化开发...通过阅读提供的教程资源和实践上述示例,你可以逐步掌握Dojo的使用技巧,并将其应用于实际项目中。

    Dojo官方教程中文翻译完美版

    这个"Dojo官方教程中文翻译完美版"为开发者提供了全面了解和掌握Dojo工具集的宝贵资源。 在Dojo框架中,有几个核心概念和关键组件是学习的重点: 1. **模块系统(AMD,Asynchronous Module Definition)**:Dojo是...

    Dojo教程

    Dojo 是一个强大的JavaScript库,特别设计用于构建富互联网应用程序(RIA)。这个框架全面地涵盖了前端开发所需的各种功能,包括DOM操作、事件处理、动画效果、数据存储以及Ajax通信等。Dojo 的核心优势在于其模块化...

    实战DOJO中文版教程

    教程会教授如何使用`dojo/fx`和`dojo/animatiion`来创建过渡效果、淡入淡出、滑动等特效,使Web应用更具动态感。 最后,教程会涵盖DOJO的工具和最佳实践,如测试框架DOH、调试工具、性能优化策略等,帮助开发者提升...

    dojo官方教程中文版 pdf 非扫描

    这个"dojo官方教程中文版 pdf 非扫描"是对于Dojo框架深入理解的重要资源,适合那些希望学习或深化对Dojo理解的开发者。教程以中文形式呈现,使得中文使用者能够更方便地学习Dojo的核心概念和技术。 Dojo的核心特性...

    Dojo 工具包教程

    ### Dojo工具包教程 #### 一、简介与概述 Dojo工具包是一个开源的DHTML工具包,主要由JavaScript编写而成。它旨在解决长期存在的DHTML开发问题,如浏览器兼容性问题,并允许开发者轻松地为网页添加动态功能,如小...

    ArcGIS API for JavaScript 开发教程+DOJO指南+配置教程

    《ArcGIS API for JavaScript开发教程+DOJO指南+配置教程》是一份专为开发者准备的综合资源,旨在帮助他们熟练掌握使用ArcGIS API for JavaScript进行Web GIS应用开发,并结合DOJO框架进行高效编程。这份教程特别...

    dojo相关详细资料

    Dojo 是一个强大的JavaScript工具库,它为Web开发提供了丰富的功能和组件,涵盖了从DOM操作、事件处理到AJAX通信、动画效果等各个方面。在深入理解Dojo之前,我们需要了解JavaScript在网页开发中的核心地位以及它...

    DOJO开发指南(结合DOJO中国及网上的资料整理的结果)

    【DOJO开发指南】 DOJO 是一个开源的JavaScript工具库,设计用于简化Web应用程序的开发,特别是富互联网应用...通过深入理解和熟练使用DOJO,开发者可以大大提高工作效率,创建出功能丰富、用户体验优良的Web应用。

    Dojo的高级运用:Widget的制作

    <<Dojo的高级运用:Widget的制作>> 和 使用Dojo和JSON构建Ajax应用>> 中涉及到的源代码 博文链接:https://tailsherry.iteye.com/blog/102907

Global site tag (gtag.js) - Google Analytics