JQuery 动画

默认方式

方法 描述
hide([speed],[easing],[fn]) 同时修改多个样式属性,将选择元素的 display 样式改为 none
show([speed],[easing],[fn]) 将元素的 display 样式设置为之前的显示状态(其它)
toggle([speed],[easing],[fn]) 切换元素的可见状体

hide() 方法在隐藏的时候会先保存原先的 display 属性值(“block”、“inline"或其它除了"none” 之外的值)。当调用 show() 方法时,会根据 hide() 方法保存的属性值来显示元素。

参数解析

speed:设置动画的速度,有三种预定义字符串(“slow” — 600ms、“normal” — 400ms、“fast” — 200ms),也可以输入毫秒数值;输入关键字时需要添加引号,数字则不需要

easing:用来指定切换效果,默认是 “swing”,可用参数 “linear”

  • swing:动画执行时效果是开始慢,中间快,最后慢
  • linear:动画匀速执行

fn:在动画完成时执行的函数,每个元素执行一次

滑动方式

方法 描述
slideDown([speed],[easing],[fn]) 改变元素的高度,将元素由上至下延伸显示
slideUp([speed],[easing],[fn]) 改变元素的高度,将元素由下到上缩短隐藏
slideToggle([speed],[easing],[fn]) 通过高度变化来切换匹配元素的可见性

淡入淡出方式

方法 描述
fadeIn([speed],[easing],[fn]) 改变元素的不透明度,直到元素完整显示
fadeOut([speed],[easing],[fn]) 改变元素的不透明度,直到元素完全消失
fadeToggle([speed],[easing],[fn]) 切换以上两种状态

自定义动画

在 jQuery 中,可以使用 animate() 方法来自定义动画。通过该方法,能够实现更加复杂的动画效果,更具有灵活性。

语法结构:animate([params,]speed,callback);

  • params:包含样式属性及值的映射,eg:{property1:“value”,property2:“value2”…}
  • speed:动画执行的速度
  • callback:在动画完成时执行的函数

复杂示例:

$("#panel").click(function()
  $(this).animate({left:"400px",height:"200px",opacity:"1"},2000)
    .animate({top:"200px",width:"200px"},3000,function(){
      $(this).css("border","5px solid green")
  })
});

动画队列

一组元素上的动画效果

  • 当在一个 animate() 方法中应用多个属性时,动画时同时发生的
  • 当以链式的写法应用动画方法时,动画时按照顺序发生的

多组元素上的动画效果

  • 默认情况下,动画都是同时发生的
  • 当以回调的形式应用动画方式时,动画是按照顺序发生的

在动画方法中,要注意其它非动画方法会插队,需要将这些方法写在动画方法的回调函数中。

停止动画

语法结构:stop([clearQueue][,gotoEnd]);

clearQueue:true 后续动画不执行;false(默认值) 后续动画会执行

gotoEnd:true 立即执行完成当前动画;false(默认值) 立即停止当前动画

当调用stop()方法后,队列里面的下一个动画将会立即开始。

但是,如果参数clearQueue被设置为true,那么队列面剩余的动画就被删除了,并且永远也不会执行。

如果参数jumpToEnd被设置为true,那么当前动画会停止,但是参与动画的每一个CSS属性将被立即设置为它们的目标值。