11.4 多属性缓动

showDetails()函数基本实现我们最初设想的“展开”效果,但因为topleft属性的动画速度相同,看起来还是有点像“滑入”效果。只要把top属性的缓动函数修改为easeInQuart,就可以改变一下效果;也就是让元素以曲线的方式运动,而不是径直地出来。不过别忘了,使用非swinglinear的任何缓动函数都需要插件,比如jQuery UI(http://jqueryui.com/),参见代码清单11-8。

代码清单11-8

  1. $member.find('div').css({
  2. display: 'block',
  3. left: '-300px',
  4. top: 0
  5. }).each(function(index) {
  6. $(this).animate({
  7. left: 0,
  8. top: 25 * index
  9. }, {
  10. duration: 'slow',
  11. specialEasing: {
  12. top: 'easeInQuart'
  13. }
  14. });
  15. });

通过specialEasing选项可以为每个要应用动画的属性设置不同的加速度曲线。任何没有包含在这个选项中的属性,都会使用easing选项中指定的缓动函数——如果提供了的话;否则,就要使用默认的swing函数。

现在,我们就做好了一个非常有吸引力的动画效果,能够优雅地展示每个人的详细信息。可是,还没有显示每个人的简介啊!在讨论怎么显示每个人的简介之前,我们还得稍微跑跑题,先介绍一下jQuery延迟对象机制。