show()/hide():从左上角逐渐展开或收缩;
直接以无参数形式调用show()和hide(),会显示和隐藏元素,只要传递一个时间参数(或者'slow'、'fast'这些字符串)进去,就变成了动画;
div.hide(3000);//在3秒内逐渐消失。
div.show('slow');//在0.6秒内逐渐显示
toggle():根据当前状态决定是show()还是hide()。
slideUp()/slideDown():在垂直方向逐渐展开或收缩的
slideUp()把一个可见的DOM元素收起来,效果跟拉上窗帘似的,slideDown()相反,而slideToggle()则根据元素是否可见来决定下一步动作。
fadeIn()/fadeOut():淡入淡出,也就是通过不断设置DOM元素的opacity属性来实现,而fadeToggle()则根据元素是否可见来决定下一步动作。
如果上述动画效果还不能满足你的要求,那就祭出最后大招:animate(),它可以实现任意动画效果,我们需要传入的参数就是DOM元素最终的CSS状态和时间,jQuery在时间段内不断调整CSS直到达到我们设定的值:
div.animate({
opacity:0.25,
width:'256px',
height:'256px'
},3000);//在3秒内CSS过渡到设定值
animatte()还可以再传入一个函数,当动画结束的时候该函数将被调用:
div.animate({
opacity:0.25,
width:'256px',
height:'256px'
},3000,function(){
console.log("动画已结束!");
$(this).css('opacity','1.0').css('width','128px').css('height','128px');
});
串行动画:
jQuery的动画效果还可以串行执行,通过delay()方法还可以实现暂停。
//滑出-暂停-放大-暂停-缩小
div.slideDown(2000)
.delay(1000)
.animate({
width:'256px',
height:'256px'
},2000)
.delay(1000)
.animate({
width:'128px',
height:'128px'
},2000);