[关闭]
@guoxs 2015-08-22T09:09:57.000000Z 字数 4643 阅读 3026

jQuery 动画特效

jQuery


调用show()和hide()方法显示和隐藏元素

show()和hide()方法用于显示或隐藏页面中的元素,它的调用格式分别为:

  1. $(selector).hide(speed,[callback])和
  2. $(selector).show(speed,[callback])

参数speed设置隐藏或显示时的速度值,可为“slow”、“fast”或毫秒数值,可选项参数callback为隐藏或显示动作执行完成后调用的函数名。

  1. <body>
  2. <h3>使用show()和hide()方法显示和隐藏元素</h3>
  3. <div>
  4. <h4>我喜欢吃的水果</h4>
  5. <ul>
  6. <li>苹果</li>
  7. <li>甘桔</li>
  8. <li>梨</li>
  9. </ul>
  10. <input id="hidval" type="hidden" value="0"/>
  11. </div>
  12. <script type="text/javascript">
  13. $(function () {
  14. $("h4").bind("click", function () {
  15. if ($("#hidval").val() == 0) {
  16. $("ul").hide();
  17. $("#hidval").val(1);
  18. } else {
  19. $("ul").show();
  20. $("#hidval").val(0);
  21. }
  22. });
  23. });
  24. </script>
  25. </body>

动画效果的show()和hide()方法

调用show()和hide()方法仅是实现的元素的显示和隐藏功能,如果在这些方法中增加“speed”参数可以实现动画效果的显示与隐藏,同时,如果添加了方法的回调函数,它将在显示或隐藏执行成功后被调用。

  1. <script type="text/javascript">
  2. $(function () {
  3. $("h4").bind("click", function () {
  4. if ($("#hidval").val() == 0) {
  5. $("ul").show("slow",function(){
  6. $("#hidval").val(1);
  7. })
  8. } else {
  9. $("ul").hide("fast",function(){
  10. $("#hidval").val(0);
  11. })
  12. }
  13. })
  14. });
  15. </script>

调用toggle()方法实现动画切换效果

第一节我们学过实现元素的显示与隐藏需要使用hide()与show(),那么有没有更简便的方法来实现同样的动画效果呢?
调用toggle()方法就可以很容易做到,即如果元素处于显示状态,调用该方法则隐藏该元素,反之,则显示该元素,它的调用格式是:

  1. $(selector).toggle(speed,[callback])

其中speed参数为动画效果时的速度值,可以为数字,单位为毫秒,也可是“fast”、“slow”字符,可选项参数callback为方法执行成功后回调的函数名称。

  1. $(function () {
  2. var $spn = $("#spnTip");
  3. $("h4").bind("click", function () {
  4. $("ul").toggle("fast",function(){
  5. $spn.html() == "隐藏" ? $spn.html("显示") : $spn.html("隐藏");
  6. })
  7. });
  8. });

使用slideUp()和slideDown()方法的滑动效果

可以使用slideUp()和slideDown()方法在页面中滑动元素,前者用于向上滑动元素,后者用于向下滑动元素,它们的调用方法分别为:

  1. $(selector).slideUp(speed,[callback])和$(selector).slideDown(speed,[callback])

其中speed参数为滑动时的速度,单位是毫秒,可选项参数callback为滑动成功后执行的回调函数名。
slideDown()slideup()
滑动与淡入淡出的区别:滑动改变元素的高度,淡入淡出改变元素的透明度。

  1. $(function () {
  2. $("h4").bind("click", function () {
  3. if ($("#hidval").val() == 0) {
  4. $("ul").slideUp("3000",function(){
  5. $("#hidval").val(1);
  6. })
  7. } else {
  8. $("ul").slideDown("3000",function(){
  9. $("#hidval").val(0);
  10. })
  11. }
  12. })
  13. });

使用slideToggle()方法实现图片“变脸”效果

使用slideToggle()方法可以切换slideUp()和slideDown(),即调用该方法时,如果元素已向上滑动,则元素自动向下滑动,反之,则元素自动向上滑动,格式为:

  1. $(selector).slideToggle(speed,[callback])

其中speed参数为动画效果时的速度值,可以为数字,单位为毫秒,也可是“fast”、“slow”字符,可选项参数callback为方法执行成功后回调的函数名称。

  1. $(function () {
  2. var $spn = $("#spnTip");
  3. $("h4").bind("click", function () {
  4. $("ul").slideToggle("3000",function() {
  5. $spn.html() == "向下滑" ? $spn.html("向上滑") : $spn.html("向下滑");
  6. })
  7. })
  8. });

使用fadeIn()与fadeOut()方法实现淡入淡出效果

fadeIn()和fadeOut()方法可以实现元素的淡入淡出效果,前者淡入隐藏的元素,后者可以淡出可见的元素,它们的调用格式分别为:

  1. $(selector).fadeIn(speed,[callback])和$(selector).fadeOut(speed,[callback])

其中参数speed为淡入淡出的速度,callback参数为完成后执行的回调函数名。

  1. $(function () {
  2. $("h4").bind("click", function () {
  3. if ($("#hidval").val() == 0) {
  4. $("ul").fadeIn("3000",function() {
  5. $("#hidval").val(1);
  6. })
  7. } else {
  8. $("ul").fadeOut("3000",function() {
  9. $("#hidval").val(0);
  10. })
  11. }
  12. })
  13. });

使用fadeTo()方法设置淡入淡出效果的不透明度

调用fadeTo()方法,可以将所选择元素的不透明度以淡入淡出的效果调整为指定的值,该方法的调用格式为:

  1. $(selector).fadeTo(speed,opacity,[callback])

其中speed参数为效果的速度,opacity参数为指定的不透明值,它的取值范围是0.0~1.0,可选项参数callback为效果完成后,回调的函数名。

  1. $(function () {
  2. $("span").each(function (index) {
  3. switch (index) {
  4. case 0:
  5. $(this).fadeTo(3000,0.2);
  6. break;
  7. case 1:
  8. $(this).fadeTo(3000,0.4);
  9. break;
  10. case 2:
  11. $(this).fadeTo(3000,0.6);
  12. break;
  13. }
  14. });
  15. });

调用animate()方法制作简单的动画效果

调用animate()方法可以创建自定义动画效果,它的调用格式为:

  1. $(selector).animate({params},speed,[callback])

其中,params参数为制作动画效果的CSS属性名与值,speed参数为动画的效果的速度,单位为毫秒,可选项callback参数为动画完成时执行的回调函数名。

  1. <body>
  2. <h3>制作简单的动画效果</h3>
  3. <span></span>
  4. <div id="tip"></div>
  5. <script type="text/javascript">
  6. $(function () {
  7. $("span").animate({
  8. width: "80px",
  9. height: "80px"
  10. },
  11. 3000, function () {
  12. $("#tip").html("执行完成!");
  13. });
  14. });
  15. </script>
  16. </body>

调用animate()方法制作移动位置的动画

调用animate()方法不仅可以制作简单渐渐变大的动画效果,而且还能制作移动位置的动画,在移动位置之前,必须将被移元素的“position”属性值设为“absolute”或“relative”,否则,该元素移动不了。

  1. $(function () {
  2. $("span").animate({
  3. left: "+=100px"
  4. }, 3000, function () {
  5. $("span").animate({
  6. height: '+=30px',
  7. width: '+=30px'
  8. }, 3000, function () {
  9. $("#tip").html("执行完成!");
  10. });
  11. });
  12. });

调用stop()方法停止当前所有动画效果

stop()方法的功能是在动画完成之前,停止当前正在执行的动画效果,这些效果包括滑动、淡入淡出和自定义的动画,它的调用格式为:

  1. $(selector).stop([clearQueue],[goToEnd])

其中,两个可选项参数clearQueue和goToEnd都是布尔类型值,前者表示是否停止正在执行的动画,后者表示是否完成正在执行的动画,默认为false。

  1. <script type="text/javascript">
  2. $(function () {
  3. $("span").animate({
  4. left: "+=100px"
  5. }, 3000, function () {
  6. $(this).animate({
  7. height: '+=60px',
  8. width: '+=60px'
  9. }, 3000, function () {
  10. $("#tip").html("执行完成!");
  11. });
  12. });
  13. $("#btnStop").bind("click", function () {
  14. $("span").stop();
  15. $("#tip").html("执行停止!");
  16. });
  17. });
  18. </script>

调用delay()方法延时执行动画效果

delay()方法的功能是设置一个延时值来推迟动画效果的执行,它的调用格式为:

  1. $(selector).delay(duration)

其中参数duration为延时值,它的单位是毫秒,当超过延时值时,动画继续执行。

  1. <script type="text/javascript">
  2. $(function () {
  3. $("span").animate({
  4. left: "+=100px"
  5. }, 3000, function () {
  6. $(this).animate({
  7. height: '+=60px',
  8. width: '+=60px'
  9. }, 3000, function () {
  10. $("#tip").html("执行完成!");
  11. });
  12. });
  13. $("#btnStop").bind("click", function () {
  14. $("span").delay(2000);
  15. $("#tip").html("正在延时!");
  16. });
  17. });
  18. </script>
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注