在之前的学习中,我们接触了以下4种jQuery动画形式。

  • (1)显示与隐藏
  • (2)淡入与淡出
  • (3)滑上与滑下
  • (4)自定义动画

所有jQuery动画从本质上来说,都是通过改变元素的CSS属性值来实现的。换句话说,jQuery动画其实就是通过将元素的CSS属性从“一个值”在一定时间内平滑地过渡到“另一个值”,从而实现动画效果。

对于3种动画形式,实现的原理如下。

  • (1)显示与隐藏:通过改变display、opacity、width、height来实现。
  • (2)淡入与淡出:通过改变display、opacity来实现。
  • (3)滑上与滑下:通过改变display、height来实现。

实际上,这三种动画形式本质上就是使用animate()方法来实现的,只不过jQuery把它们封装得更加简单而已。原来,原来……原来这一章学了那么多,本质上也就一个东西——animate()!

在下面代码中,每一组的两行代码其实都是等价的:

第1组:

$().hide(500); $().animate({"width":"0", "height":"0", "opacity":"0.0", "display":"none"},500);

第2组:

$().fadeOut(500); $().animate({"opacity":"0.0", "display":"none"},500);

第3组:

$().slideUp(500); $().animate({"height":"0", "display":"none"},500);

在实际开发中,由于前3种动画形式其实是内置动画,它们的使用有很大的限制,因此我们更倾向于使用“自定义动画”的形式来实现各种动画效果。

通过深入剖析jQuery动画的本质,可能很多小伙伴都会有“柳暗花明又一村”的感觉。在学习过程中,只有深入技术的本质,才能让我们对知识理解和记忆更加深刻。也只有这样,才能让我们的技术水平更上一层楼。如果只知其然,不知其所以然的话,技术就可能永远卡在某个瓶颈。在这一点上,笔者有过非常深刻的体会。