注:本笔记内容摘自《jQuery基础教程》+ jQuery 1.4.1中文参考
基本的隐藏和显示
基本的.hide()和.show()方法不带任何参数。可以把它们相像成类似.css(‘display’,’string’)方法的简写方式,其中string是适当的显示值。
其中,.hide()方法会匹配的元素集合的内联style属性设置为display:none。但它的聪明之处是,她能够在把display的值变成none之前,记住原先的display值,通常是block或inline。恰恰相反,.show()方法会将匹配的元素集合的display属性恢复为应用display:none之前的可见属性。
例如:$(‘p’).hide()和 $(‘p’).show()二者将会隐藏或者显示段落,但是都没有动画效果。
效果和速度
指定显示速度
当在.show()和.hide()中指定一个速度参数时,就会产生动画。jQuery可以指定3中速度参数:slow、normal和fast。使用.show(‘slow’)会在0.6,秒内完成效果,.show(‘normal’)是0.4秒,而.show(‘fast’)则是0.2秒。要制定更精确的速度,可以使用毫秒数值,例如.show(1000)。
淡入和淡出
逐渐增大其不透明度,那么可以使用.fadeIn(‘slow’)方法,.fadeIn()会在一开始设置段落的尺寸,以便内容能够简单的逐渐显示出来。类似地,要逐渐减少不透明度,可以使用.fadeOut()。
多重效果
在绑定到jQuery核心的效果中,只有show()和hide()会同时修改多个样式属性---高度、宽度和不透明度。其他效果则只修改一种属性。
fadeIn()和fadeOut():不透明度
fadeTo():不透明度
slideDown()和slideUp():高度
jQuery还提供了一个强大的animate()方法,通过该方法可以创建包含多重效果的自定义动画。Animate()方法接受以下4个参数。
jQuery 1.4.1 API
animate(params, options) 返回值:jQuery
概述
用于创建自定义动画的函数。
这个函数的关键在于指定动画形式及结果样式属性对象。这个对象中每个属性都表示一个可以变化的样式属性(如“height”、“top”或“opacity”)。注意:所有指定的属性必须用骆驼形式,比如用marginLeft代替margin-left.
而每个属性的值表示这个样式属性到多少时动画结束。如果是一个数值,样式属性就会从当前的值渐变到指定的值。如果使用的是“hide”、“show”或“toggle”这样的字符串值,则会为该属性调用默认的动画形式。
参数
params Options
一组包含作为动画属性和终值的样式属性和及其值的集合
options Options
一组包含动画选项的值的集合。
选项
duration String,Number
(默认值:"normal") 三种预定速度之一的字符串("slow","normal", or "fast")或表示动画时长的毫秒数值(如:1000)
easing String
(默认值:"swing") 要使用的擦除效果的名称(需要插件支持).默认jQuery提供"linear" 和 "swing".
complete Function
在动画完成时执行的函数
step Callback
queue Boolean
(默认值:true) 设定为false将使此动画不进入动画队列 (jQuery 1.2中新增)
示例
描述:
第一个按钮按了之后展示了不在队列中的动画。在div扩展到90%的同时也在增加字体,一旦字体改变完毕后,边框的动画才开始。
HTML 代码:
<button id="go1">» AnimateBlock1</button>
<button id="go2">» AnimateBlock2</button>
<divid="block1">Block1</div><div id="block2">Block2</div>
jQuery 代码:
$("#go1").click(function(){
$("#block1").animate( { width: "90%"}, { queue:false, duration: 5000 } )
.animate( { fontSize: '10em' } , 1000 )
.animate( { borderWidth: 5 }, 1000);
});
$("#go2").click(function(){
$("#block2").animate( { width: "90%"}, 1000 )
.animate( { fontSize: '10em' } , 1000 )
.animate( { borderWidth: 5 }, 1000);
});
描述:
第二个按钮按了之后就是一个传统的链式动画,即等前一个动画完成后,后一个动画才会开始.
HTML 代码:
<buttonid="go1">» Animate Block1</button>
<buttonid="go2">» Animate Block2</button>
<divid="block1">Block1</div><divid="block2">Block2</div>
jQuery 代码:
$("#go1").click(function(){
$("#block1").animate( { width:"90%"}, { queue: false, duration: 5000 } )
.animate( { fontSize: '10em' } , 1000 )
.animate( { borderWidth: 5 }, 1000);
});
$("#go2").click(function(){
$("#block2").animate( { width:"90%"}, 1000 )
.animate( { fontSize: '10em' } , 1000 )
.animate( { borderWidth: 5 }, 1000);
});
描述:
用600毫秒切换段落的高度和透明度
jQuery 代码:
$("p").animate({
height: 'toggle', opacity: 'toggle'
}, { duration: "slow" });
描述:
用500毫秒将段落移到left为50的地方并且完全清晰显示出来(透明度为1)
jQuery 代码:
$("p").animate({
left: 50, opacity: 'show'
}, { duration: 500 });
描述:
一个使用“easein”函数提供不同动画样式的例子。只有使用了插件来提供这个“easein”函数,这个参数才起作用。
jQuery 代码:
$("p").animate({
opacity: 'show'
}, { duration: "slow", easing:"easein" });
简单概括
(1) 一组元素上的效果:
当在一个.animate()方法中以多个属性的方式应用时,是同时发生的。
当以方法连缀的形式应用时,是按顺序发生的(排队效果)。
(2) 多组元素上的效果:
默认情况下是同时发生的。
当在事件处理程序的回调函数中应用时,是按顺序发生的(排队效果)。