在之前的学习中,我们接触了以下 4 种 jQuery 动画形式:
所有 jQuery 动画从本质上来说,都是通过改变元素的 CSS 属性值来实现的。换句话说,jQuery 动画其实就是通过将元素的 CSS 属性从“一个值”在一定时间内平滑地过渡到“另一个值”,从而实现动画效果。
对于前 3 种动画形式,实现的原理如下:
实际上,这 3 种动画形式就是使用 animate() 方法来实现的,只不过 jQuery 把它们封装得更加简单而已。
在下面 3 组代码中,每一组的两行代码其实都是等价的。
1) 第 1 组
$().hide(500);
$().animate({"width":"0", "height":"0", "opacity":"0.0", "display":"none"},500);
2) 第 2 组
$().fadeOut(500);
$().animate({"opacity":"0.0", "display":"none"},500);
3) 第3组
$().slideUp(500);
$().animate({"height":"0", "display":"none"},500);
在实际开发中,由于前 3 种动画形式都属于内置动画,它们的使用有很大的限制,因此我们更倾向于使用“自定义动画”的形式来实现各种动画效果。
通过深入剖析 jQuery 动画的本质,可能很多小伙伴都会有“柳暗花明又一村”的感觉。在学习过程中,只有深入探析技术的本质,才能让我们对知识的理解和记忆更加深刻。也只有这样,才能让我们的技术水平更上一层楼。如果只知其然而不知其所以然,技术就可能永远卡在某个瓶颈。在这一点上,笔者有过非常深刻的体会。