所有分类
  • 所有分类
  • 后端开发
谈谈基于jQuery的animate easing之应用

谈谈基于jQuery的animate easing之应用

jQuery easing现在被广泛使用,通常会使用一些复杂的自定义动画,所以我们必须扩展前端技术知识。从jQuery API 从文档中可以看出,jquery定制动画的函数.animate( properties [, duration] [, easing] [, complete] )四个参数: ◆ properties:一组包含风格属性及其...

未标题-1.png

jQuery easing现在被广泛使用,通常会使用一些复杂的自定义动画,所以我们必须扩展前端技术知识。从jQuery API 从文档中可以看出,jquery定制动画的函数.animate( properties [, duration] [, easing] [, complete] )四个参数:

◆ properties:一组包含风格属性及其值作为动画属性和最终值的集合

◆ duration(可选):动画执行时间的价值可以是三个预定速度之一的字符串(”slow”, “normal”, or “fast(如:1000)表示动画时间的毫秒值

◆ easing(可选):使用过渡效果的名称,如:“linear” 或”swing”

◆ complete(可选):动画完成时执行的函数

默认参数easing有两种效果:“linear”和”swing如果需要更多的效果,插件将得到支持,jQuery Easing Plugin提供了像“easeOutExpo”、”easeOutBounce“等30多种效果,大家可以点击这里看看每一种easing的演示效果,下面详细介绍每个easing的使用方法和曲线图。

jQuery easing 使用方法

首先,如果在项目中需要使用特殊的动画效果,则需要在引入jquery后引入jquery.easing.js

<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.3.js"></script>
<script type="text/javascript" src="http://gsgd.co.uk/sandbox/jquery/easing/jquery.easing.js"></script>

引入后,easing参数的可选值有以下32种:

1. linear
2. swing
3. easeInQuad
4. easeOutQuad
5. easeInOutQuad
6. easeInCubic
7. easeOutCubic
8. easeInOutCubic
9. easeInQuart
10. easeOutQuart
11. easeInOutQuart
12. easeInQuint
13. easeOutQuint
14. easeInOutQuint
15. easeInExpo
16. easeOutExpo
17. easeInOutExpo
18. easeInSine
19. easeOutSine
20. easeInOutSine
21. easeInCirc
22. easeOutCirc
23. easeInOutCirc
24. easeInElastic
25. easeOutElastic
26. easeInOutElastic
27. easeInBack
28. easeOutBack
29. easeInOutBack
30. easeInBounce
31. easeOutBounce
32. easeInOutBounce

当然,一个项目不可能使用这么多效果。为了减少代码冗余,必要时无需引入整个jquery.easing.js,我们只能在Javascript文件中放置我们需要的几个easing,例如只在项目中使用“easeOutExpo”和”easeOutBounce“两种效果,只需要以下代码,如下:

jQuery.extend( jQuery.easing, 
{ 
easeOutExpo: function (x, t, b, c, d) { 
return (t==d) ? b c : c * (-Math.pow(2, -10 * t/d)   1)   b; 
}, 
easeOutBounce: function (x, t, b, c, d) { 
if ((t/=d) < (1/2.75)) { 
return c*(7.5625*t*t)   b; 
} else if (t < (2/2.75)) { 
return c*(7.5625*(t-=(1.5/2.75)*t   .75)   b; 
} else if (t < (2.5/2.75) { 
return c*(7.5625*(t-=(2.25/2.75)*t   .9375)   b; 
} else { 
return c*(7.5625*(t-=(2.625/2.75)*t   .984375)   b; 
} 
}, 
});

使用jquery自定义动画函数animate来指定easing效果,如自定义弹簧效果的动画:

$(myElement).animate({ 
top: 500, 
opacity: 1 
}, 1000, 'easeOutBounce');

值得一提的是,从jquery开始 1.4版本结束后,扩展了animate()方法和easing方法,支持为每个属性指定easing方法。详情请参考以下内容,如:

///第一种写法
$(myElement).animate({ 
left: [500, 'swing'], 
top: [200, 'easeOutBounce'] 
}); 
///第二种写法
$(myElement).animate({ 
left: 500, 
top: 200 
}, { 
specialEasing: { 
left: 'swing', 
top: 'easeOutBounce' 
} 
});

slideup()使用jQuery内置动画函数、slideDown()等来指定easing效果,以下两种方法都可以:

$(myElement).slideUp(1000, method, callback}); 
$(myElement).slideUp({ 
duration: 1000, 
easing: method, 
complete: callback 
});

jQuery easing图解

下图可以让你更容易理解每个easing的效果

2016617102432442.png

总结

以上是JQuery介绍给大家的 animate 使用easing的相关知识,熟练掌握这些知识,提高我们的互动体验。

原文链接:https://www.icz.com/technicalinformation/web/html/2023/05/9590.html,转载请注明出处~~~
0
注意:请收藏好网址www.icz.com,防止失联!站内免费资源持续上传中…!赞助我们
显示验证码
没有账号?注册  忘记密码?