jquery动画效果总结

一.jquery的动画速度fast-slow对应着600ms,200ms,不写是400ms

二.禁用jquery的动画

将jQuery.fx.off设置为true即可

    $(".stopping").click(function(){
        jQuery.fx.off = true;//禁用所有jquery的动画
    })

三.jquery动画是异步的调用动画方法时会立刻返回,动画则在"后台"执行,也就是方法会在动画之前完成,所以可以给动画方法添加第二个参数

$("#message").fadeIn("slow",function(){
    $(this).text("动画执行后再修改的内容");
});

四.jquery动画还可以传入一个对象来调用动画方法

//$("#message").fadeIn({
//    duration: "fast",
//    complete: function(){
//    $(this).text("动画执行后再修改的内容");
//});

五.简单动画fadeIn,fadeOut,fadeTo

需要传入一个opacity目标值,fadeTo会将元素的当前opacity值变化到目标值,调用fadeTo的方法时,第一参数必须是时长(或选项对象),第二参数是opacity目标值,回调函数是可选的第三个参数

$("#message").fadeTo("0.5","0.1");

     show,hide toggle

注意:fadeOut让元素不可见,但依然保留了隐藏元素在文档中的占位

  hide方法则会将元素从布局中移除等同于display:none一样

toggle()可以改变在上面调用它的元素的可视状态,隐藏调用show(),显示则调用hide,必须传入时长或选线对象给toggle来产生动画效果,

参数true等同show(),参数false等同hide(),如果传入两个或多个函数参数给toggle(),则会注册为事件处理程序.

    slideDown(),slideUp(),slideToggle()

slideUp()会因此jquery中的元素,将其高度变化到0,再设置display的属性为none,slideToggle()来切换可见性,

$("#img").click(function(){
$("#img").slideToggle("800");
});

$("#img").fadeOut().show(300).slideUp().slideToggle();
})

六.自定义动画

animate()有2个参数,

第一个是必须的,必须是一个css对象,该对象的属性指定要变化的css属性和他们的目标值.比如上面表述的slideUp()效果可以用一下代码代替

$("img").animate({height: 0px});

第二个参数是可选的,用来指定动画如何执行,可以传入一个选项对象给animate()方法

$("#btn").click(function(){
        $("#img").fadeIn(500).animate({"":"+=100"},{queue:false,duration:1000}).fadeOut(500);
    })

上面的fadeIn(500)和fadeOut效果是序列化的,但是animate的调用在1000毫秒内连续变化width属性是非队列化的,这段width动画和fadeIn的效果的开始时间相同,fadeOut的效果会在fadeIn效果完成时立刻开始,它不会等到width动画完成.

七.jquery缓动函数

实现方式一:

  使用specialEasing 选项来指定自定义缓动函数

        $("#img").animate({"width":"hide","height":"hide",opacity:"hide"},
        {specialEasing:{"linear",height:"linear"}});

实现方式二:

  在第一个对象参数中传入[目标值,缓动函数] 数组

$("#btn").click(function(){
        $("#img").animate({["hide","linear"],height:["hide","linear"],opacity:"hide"});
    });

八,动画的取消,延迟和队列

  1.stop():停止选中元素上的当前正在执行的任何动画 stop():接受两个可选的布尔值参数,

    如果第一个参数是true,会清除改选中元素上的动画队列:除了停止当前动画,还会取消任何等待执行的动画,第一个参数默认值是false:若忽略,等待执行的动画不会被取消.

    第二个参数用来指定正在连续变化的css属性是否保留当前值,还是应该变化到最终目标值.true:变化到目标值;false:保持当前值

    $("#img").bind({mouseover:function(){$(this).stop().fadeTo(300,1.0)},
    mouseout:function(){$(this).stop().fadeTo(300,0.5)}
    });

  2.delay(),第一参数时长,第二个参数是对列名(可选)

    $("#img").fadeTo(100,0.5).delay(200).slideUp();

在上面的列子中,添加短延迟,遮掩鼠标快速画过图片不停留时,不会有任何分神动画产生

$("#img").bind({mouseover:function(){$(this).stop(true).delay(100).fadeTo(300,1.0)},
    mouseout:function(){$(this).stop(true).fadeTo(300,0.5)}
    });

  3.queque() 给队列追加函数

淡入显示一个元素,稍等片刻,是指一些文字,然后变化边框

$("#img").fadeIn().delay(200).queue(function(next){
    $(this).text("helloworld");
//    next();            //运行队列的下一项
$(this).dequeue();//用来代替next();
}).animate({height:"2px"});

  4.clearQueue();清除追加的函数

原文地址:https://www.cnblogs.com/tingbogiu/p/5535519.html