3.6 动画效果相关的方法
jQuery
还提供了一些动画效果相关的方法,通过使用这些方法,可以开发出更加友好的UI
界面,例如可以实现各种”渐变”动画。
3.6.1 简单动画和复杂动画
简单动画
jQuery
提供的简单动画效果相关的方法如下。
显示和隐藏方法
方法 | 描述 |
---|---|
show([duration] [,easing] [,callback]) |
将jQuery 对象里包含的隐藏的DOM 元素以动画方式显示 出来。 |
hide([duration] [,easing] [,callback]) |
将jQuery 对象里包含的显示的DOM 元素以动画方式隐藏 起来。 |
toggle([duration] [,easing] [,callback]) |
该方法是show 、hide 两个方法的综合版本。 |
toggle(showOrHide) |
向该方法传入的参数控制显示或隐藏jQuery 对象包含的DOM 元素。 |
### 以动画方式增加或减少高度 ### |
方法 | 描述 |
---|---|
slideDown([duration] [,easing] [,callback]) |
该方法将会不断增加当前jQuery 对象所匹配DOM 元素的高度,直至这些DOM 元素完全显示出来。 |
slideUp([duration] [,easing] [,callback]) |
该方法将会不断减小当前jQuery 对象所匹配DOM 元素的高度,直至这些DOM 元素完全隐藏起来。 |
slideToggle([duration] [,easing] [,callback]) |
该方法是slideDown 、slideUp 两个方法的综合版本。如果当前jQuery 匹配的元素处于隐藏状态,就使用”卷帘”动画将其显示出来;如果它们处于显示状态,就使用”卷帘”动画将其隐藏起来。 |
不断增加或减少透明度
方法 | 描述 |
---|---|
fadeIn([duration] [,easing] [,callback]) |
将jQuery 对象匹配的DOM 元素以”渐显”的方式显示出来(也就是不断调整透明度)。 |
fadeOut([duration] [,easing] [,callback]) |
将jQuery 对象匹配的DOM 元素以”渐隐”的方式隐藏起来(也就是不断调整透明度)。 |
fadeTo(duration,opacity [,easing] [,callback]) |
将jQuery 对象匹配的DOM 元素的透明度调整到opacity 值(opacity 是一个0到1的浮点数)。 |
fadeToggle([duration] [,easing] [,callback]) |
该方法是fadeIn([duration] [,easing] [,callback]) 、fadeOut([duration] [,easing] [,callback]) 两个方法的综合版本。如果当前jQuery 匹配的元素处于隐藏状态,就使用”渐入”动画将其显示出来;如果它们处于显示状态,就使用”渐出”动画将它们隐藏起来。 |
上述方法支持的参数
上面这些方法都可以使用如下三个参数。
方法 | 描述 | ||
---|---|---|---|
duration |
指定该动画的持续时间,可以是”slow" 、”normal" 或”fast" 三个字符串其中之一,也可以是表示动画持续时长的毫秒数,如1000。 |
||
easing |
指定该动画所使用擦除效果的名称(需要插件支持),jQuery 默认只支持”linear" 和 “swing" 两个值。 |
||
callback |
指定在动画完成时激发的函数。 | ||
### 程序示例 ### | |||
上面这些方法都可以完成一些简单常用的动画效果。下面的程序示范了这些方法的用法。 | |||
|
在浏览器中运行上述页面,即可看到toggle
、slideUp
、slideDown
、fadeIn
和fadeOut
等几种动画效果。使用上面的函数,开发者可以非常方便地实现与用户交互的动画。
复杂动画
除了上面几个实现简单动画的方法之外,还有以下几个更复杂的方法,通过它们可以进行更复杂的控制。
方法 | 描述 |
---|---|
animate(params[,duration[,easing]][,callback]) |
该函数用于创建自定义动画。其中params 是一个形如{prop1:endValue1,prop:endValue2...} 的JavaScript 对象,用于指定当前jQuery 对象包含的DOM 对象在动画结束后的状态;duration 用于指定动画持续时间;easing 用于指定动画所使用擦除效果的名称(需要插件支持);jQuery 默认只支持”linear" 和”swing" 两个值。callback 指定动画结束后激发的回调函数。 |
### animate方法的第2种形式 ### | |
方法 | 描述 |
:— | :— |
animate(params,options) |
该函数是前一个函数的另一种形式。其中params 与前一个函数的该参数完全相同;options 是一个用于指定复杂选项的JavaScript 对象。 |
#### animate方法第2种形式的options参数说明 #### | |
- duration :指定该动画的持续时间,可以是”slow" 、”normal" 或”fast" 三个字符串其中之一,也可以是表示动画持续时长的毫秒数,如1000。 |
|
- easing :指定该动画所使用擦除效果的名称(需要插件支持),jQuery 默认只支持”linear" 和 “swing" 两个值。 |
|
- linear 的效果是:整个动画以一个不变的速度行进; |
|
- swing 的效果是:行进速度在动画开始和结束时比在动画中间时稍慢 |
|
- complete :指定在动画完成时激发的函数。 |
|
- step :动画效果每改变一次将导致所指定的函数执行一次。 |
|
- queue :指定是否将该动画函数放入该对象的动画函数队列之后。 |
程序示例
下面的程序示范了如何使用animate()
方法创建自定义动画。
1 |
|
该程序中的粗体字代码使用animate
函数创建了一个自定义动画。
使用animate
函数创建自定义动画时有两点需要注意:
options
中每个属性名都应该采用”驼峰“写法,即fontsize
应该写成fontSize
。options
中每个属性都应该是可以渐变的样式属性,如”height"
、”top"
或”opacity"
等,如果指定一个fontWeight
属性,那就不行了。
动画效果全局属性
jQuery
为动画效果提供了如下两个全局属性。
方法 | 描述 |
---|---|
jQuery.fx.interval |
该属性设置jQuery 的两次动画之间的时间间隔(单位是毫秒(ms ))。比如设置为50,则表明jQuery 动画每秒变化20次。 |
jQuery.fx.off |
如果将该属性设为true ,则表明停止所有的jQuery 动画效果。在资源比较紧张的设备中使用jQuery 时,可以考虑关闭所有jQuery 动画来提升性能。 |