Chinaunix首页 | 论坛 | 博客
  • 博客访问: 190429
  • 博文数量: 62
  • 博客积分: 1477
  • 博客等级: 上尉
  • 技术积分: 475
  • 用 户 组: 普通用户
  • 注册时间: 2012-07-11 14:28
文章分类

全部博文(62)

文章存档

2012年(62)

我的朋友

分类: 系统运维

2012-07-18 14:04:30

Jquery中的动画

1、show()和hide()

a)      hide:为每个元素调用hide方法会给将该元素的display设置为none

$(“element”).hide()相当于$(“element”).css(“display”,”none”);

show:当把元素隐藏后,可以使用show()方法将元素的display设置为先前的状态(block,inline等~)

eg:

        

      

First Article....FirstArticle....First Article....First Article....First Article....First

$(function(){

        $(".article#head").toggle(function(){

            $(this).next().show();

             $(this).css("background","#ccc");

        },function(){

            $(this).next().hide();

           $(this).css("background","#fff");

        });

    });

b)     show()和hide()方法让元素动起来

可以为show和hide方法传递一个速度参数。

show(“slow”);

       show(1000);

       hide(1000);//同时减少“内容”的高度、宽度、透明度

2、fadeIn()和fadeOut()只改变元素的透明度

fadeOut()会在指定的一段时间内降低元素的透明度,直到完全消失。fadeIn()则相反。

$(function(){

        $(".article#head").toggle(function(){

            $(this).next().fadeIn(2000);

            $(this).css("background","#ccc");

        },function(){

            $(this).next().fadeOut(2000);

           $(this).css("background","#fff");

        });

    });

3、slideUp和slideDown方法只改变元素高度

$(function(){

        $(".article#head").toggle(function(){

           $(this).next().slideDown(2000);

            $(this).css("background","#ccc");

       },function(){

           $(this).next().slideUp(20*100);

           $(this).css("background","#fff");

        });

    });

4、自定义动画

animate(params , speed ,callback);

params – 一个包含样式属性和值的集合

speed – 速度参数,可选

callback—在动画完成时执行的函数,可选

a)      自定义简单动画

   

    $(function(){

        $("#panel").click(

            function(){

                $("#panel").animate({right:"500px"} , 2000);

               

            }

        );

    });   

   

    #panel{

        position : absolute ;

        width : 100px ;

        height : 100px ;

        background : #cc00ee  ;

        margin :  50px auto ;

   

    }   

b)     累加累减动画

   $(function(){

        $("#panel").click(

            function(){

               $("#panel").animate({left: "+=500px"} , 2000);//每次相对自身当

//前位置+500px            }

        );

});   

c)      多重动画

                                        i.             同时执行多个动画

$(function(){

        $("#panel").click(

            function(){

               $("#panel").animate({left: "+=500px",height:"400px"} , 2000);//想左边移动,同时增加高度            }

        );

});   

                                      ii.             按顺序执行多个动画

    $(function(){

        $("#panel").click(

            function(){

                $(this).animate({left:"+=500px"} , 2000);//让div在2秒//内距离左边500px

                $(this).animate({height:"300px"} , 2000);//移动完成增//加高度

            }

        );

});   

   

5、动画回调函数

上述show , hide , fadeIn , fadeOut , slideDown , slideUp 都可以参数中传递一个函数,代表完成动画后触发的动作。

Eg: $(this).next().slideDown(2000 ,function(){

          $(this).css("background","#eee");//动画完成后改变背景色

       });

自定义动画的回调:

//动画完成后高度变为100

$(this).animate({height:"300px"} , 2000 ,function(){

                    $(this).css("height","100px");

                 });

6、停止动画stop();

语法结构:stop([clearQueue] [, gotoEnd]);

clearQueue—是否要清空未执行完的动画队列。

gotoEnd—是否直接将正在执行的动画跳转到末状态。

    $(function()

    {

        $("#panel").hover

        (

            function()

            {

                $(this).animate({left:"+=500px",opacity:1 } , 2000);//让div在2秒内距离左边500px

               $(this).animate({height:"200px"},2000);

            },function()

            {

                    $(this).stop();

            }

        );

});  

直接使用stop(),则立即停止当前动画,执行接下来的动画。

上述代码如果使用是stop(true)则,只要光标移出,所有动画都停止。

使用stop(false , true),如果在第一个动画未完成移出鼠标,则直接跳到第一个动画的结束状态,开始第二个动画。

使用stop(true,true),如果在第一个动画未完成移出鼠标,则直接跳到第一个动画的结束状态,不再运行第二个动画。

7、判断某个元素是否处于动画状态(避免动画累积)

if($(element).is(":animated"))

  {

                return ;

  }

或者

if(!$(elemenet).is(“:animated”)//判断是否正在运行动画

{

       //如果没有动画,则添加新动画

}

8、其他动画方法

a)        toggle();切换元素的可见状态,如果元素是可见的,则切换为隐藏的;如果是隐藏的,则切换为可见的。



$(function()

    {

        $(".article#head").click(function()

        {

            if($(this).next().is(":animated"))

            {

                return ;

            }

           $(this).next().toggle(1000,function(){});//切换可见状态

        });

    });

   

b)       slideToggle()通过改变高度来实现隐藏和课件的切换,相当于slideDown和slideUp结合。

    $(function()

    {

        $(".article#head").click(function()

        {

           if($(this).next().is(":animated"))

            {

                return ;

            }

           $(this).next().slideToggle(1000,function(){});

        });

    });

c)        fadeTo();把元素的不透明度渐渐的调到指定的值。

$(this).next().fadeTo(1000,0.2[,function(){}]);

9、动画的方法概括

1.jpg

Animate代替show(): $(“p”).animate({width:”show”,height:”show”,opacity:”show”} , 400);相当于$(“p”).show(400);

Animate代替fadeIn();$(“p”).animate({opacity:”show”}, 300) 相当于$(“p”).fadeIn(400);

Animate代替slideDown():$(“p”).animate({height:”show”} , 400)相当于$(“p”).fadeIn(400);

Animate代替fadeTo(); $(“p”).animate({opacity:”0.2”},400),相当于$(“p”).fadeIn(0.2 , 400 ) ;

转载自:

阅读(1303) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~