jQuery动画与特效的方法

在页面中,元素的显示与隐藏是使用最频繁的操作。在传统的JavaScript中,一般通过display样式属性来实现。
例如:
...

document.getElementById("content").style.display="block";
document.getElementById("con").style.display="none";

...

show()方法、hide()方法和toggle()方法

show()方法用于显示页面中的元素,hide()方法则隐藏页面中的元素。
toggle()方法除了可以模拟鼠标的连续单击事件之外,同时还会动态地改变当前元素的高度、宽度和不透明度,最终切换当前元素的可见状态。即如果元素是可见的,则被切换为隐藏状态;如果元素是隐藏的,则被切换为可见状态。
这三种方法参数含义都是一致的,都可以使用关键字slow、normal和fast。
...

jQuery对象.show(duration,[fn]);

...
...

<script>
     $("#btn").click(function(){
       if($(this).val()=="显示"){
         $("#pic").show("slow",function(){
            $(this).css({"border":"1px solid #ccc","padding":"5px"});
         });
       $(this).val("隐藏")
       }else{
          $("#pic").hide("slow");
          $(this).val("显示");
       }
      });
   });
</script>

...
...

<script>
   $(function(){
      $("#menu li.lastItem").click(function(){
          //切换菜单
          $("#menu li:gt(3):not(:last)").toggle();
          //更换底部箭头方向
          $(this).toggleClass("down");
      });
   });
</script>

...

fadeIn()方法、fadeOut()方法\、fadeToggle()方法和fadeTo方法

show()方法和hide()方法与fadeIn()方法和fadeOut()方法相比较,相同之处是都具有改变元素显示与隐藏 状态的功能,不同之处在于,show()方法和hide()方法的动画效果使元素的宽度、高度和透明度属性都发生了变化,而fadeIn()方法和fadeOut()方法仅改变元素的透明度,并不修改其他属性。
...

<script>
    $(function(){
       $("#btn").click(function(){
          if($(this).val()=="淡入"){
              $("#pic").fadeIn("slow",function(){
                  $(this).css({"border":"1px solid #ccc","padding":"5px"});
              });
              $(this).val("淡出");
          }else{
              $("#pic").fadeOut("slow");
              $(this).val("淡入");
          }
       });
    });
</script>

...
fadeToggle()会动态改变当前元素的透明度,最终切换当前元素的可见状态。
...

<script>
  $(function(){
    $("#menu li.lastItem").click(function(){
          //切换菜单
         $("#menu li:gt(3):not(:last)").fadeToggle();
         //更换底部箭头方向
         $(this).toggleClass("down");
    });
  });
</script>

...
fadeIn()方法和fadeOut()方法通过改变元素的透明度来实现元素的显示和隐藏,如果要将透明度指定到某一个值,则需要调用fadeTo()方法。
...

jQuery对象.fadeTo(duration,opacity,[fn]);

...
参数opacity用于指定不透明值,取值范围是0~1,0代表完全透明,1代表完全不透明。
...

<head>
  <script src="jquery-1.11.0.min.js"></script>
</head>
<body>
    <p><img src="two.jpg" /></p>
   <p>
       <select id="sel">
          <option value="0.2">0.2</option>
          <option value="0.4">0.4</option>
          <option value="0.6">0.6</option>
          <option value="0.8">0.8</option>
       </select>
   </p>
  <script>
     $(function(){
       $("#sel").change(function(){
             var opacity=$(this).val();
             $("img").fadeTo(3000,opacity);
       });
     });
  </script>
</body>

...

slideDown()方法、slideUp()方法和slideToggle()方法

slideDown()方法和slideUp()方法都会动态地改变当前元素的高度(其他不变),但是两者的区别是,前者是由上向下滑入,即高度向下增大,使其呈现出一种“滑动”的效果,直至最终显示当前元素,此时元素的css属性display恢复除none之外的初始值。而后者则是由下到上滑出,即高度向上减小,直至最终隐藏当前元素,此时元素的css属性display修改为none.
...

<script>
  $(function(){
     $(".secondLi").hover(function(){
           $(".secondLi ul").slideDown(500);
     },function(){
           $(".secondLi ul").slideUp(500);
     });
  });
</script>

...
slideToggle()方法会动态地改变当前元素的高度(其他不变),最终切换到当前元素的可见状态。即如果元素是可见的,则通过滑出效果切换为隐藏状态:如果元素是隐藏的,则通过滑入效果切换为可见状态。
...

<script>
  $(function(){
     $(".secondLi").click(function(){
       $(".secondLi ul").slideToggle(500);
     });
  });
</script>

...

animate()方法

animate()方法可以动态地改变当前元素的各种css属性。
...

jQuery对象.animate(properties,[duration],[fn]);

...
参数properties使用一个“名:值”形式的对象,用于设置需要改变的css属性。
方法只能改变可以取数字值的css属性,如大小属性(width、height)、边框属性(border-width)、外边距属性(margin)、内边距属性(padding)、定位属性(top、left、botton、right)、字体属性(font-size)、文本属性(text-indent、letter-spacing、word-spacing)、背景属性(background-position)和透明度(opacity)。
...

<script>
  $(function(){
      $("img").click(function){
         $(this).animate({"width":"280px","height":280px"},"slow");
      });
  });
</script>

...
通过animate()方法,不仅可以利用动画效果增加元素的长度和宽度,还能够利用动画效果改变元素在页面中的位置。
...

<script>
  $(function(){
    $("img").click(function(){
       $(this).animate({
            "left":"+=100px",
            "top":"+=100px",
            "opacity":"0.5"},3000
       );
    });
  });
</script>

...
根据一些animate()方法执行的先后顺序,可以形成动画“列队”,产生“列队”后,动画的效果便按“队列”的顺序进行展示。
...

<script>
  $(function(){
     $("div").click(function(){//div块单击事件
        $(this).animate({height:100},"slow") //第1列
        .animate({width:100},"slow")//第2列
        .animate({width:50},"slow")//第3列
        .animate({width:50},"slow); //第4列
     });
  });
</script>

...

stop()方法

stop()方法能够结束当前的动画,并立即进入到下一个动画。
...

jQuery对象.stop([clearQueue] [,gotoEnd]);

...
shop()方法的两个参数均为可选参数,且均为布尔类型。
clearQueue参数表示是否清空未执行完的动画队列,gotoEnd参数表示是否立即完成正在执行的动画。
...

<script>
   $(function(){
       $(".secondLi").hover(function(){
            $(".secondLi ul").stop().slideDown(1000);
       },function(){
            $(".secondLi ul").stop().slideup(1000);
       });
   });
</scipt>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,133评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,682评论 3 390
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,784评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,508评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,603评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,607评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,604评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,359评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,805评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,121评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,280评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,959评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,588评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,206评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,442评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,193评论 2 367
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,144评论 2 352