jquery动画效果方法详解

发布时间:2019-12-08编辑:脚本学堂
有关jquery动画效果的实现代码,jquery动画函数的用法,包括了show、hidden、slideup、slidedown、fidein、fadeout等函数的用法,需要的朋友参考下。

在介绍jquery动画效果的实现之前,先来了解下多播委托:
多播委托是jquery自身的定义方式,即他不会覆盖原来在其document元素上绑定的事件,不用我们自己设定,
事件冒泡是指在jquery元素集同一事件上绑定了多个方法,当我们触发其中某一方法时,将执行一系列方法,称之为事件冒泡取消事件冒泡的方式是:event.stoppropagation();

jquery冒泡事件

jquery弹出层题目,在页面上定义一个弹出层和一个按钮,单击按钮在按钮的下方显示一个弹出层,单击任何空白区域或者弹出层,弹出层消。

代码:
 

复制代码 代码示例:
<script type="text/javascript">
$(function(){
//动画速度
var speed = 500;
//绑定事件处理
$("#btnshow").click(function(event){
//取消事件冒泡
event.stoppropagation();
//设置弹出层位置
var offset = $(event.target).offset();
//获取匹配元素在当前视口的相对偏移。
//设置弹出层位置
$("#divpop").css({top:offset.top+$(event.target).height()+"px",
left:offset.left});
//动画显示
$("#divpop").show(speed);
});
//单击空白区域隐藏弹出层
$(document).click(function(event){$("#divpop").hide(speed);});
});
</script>
 

offset():
获取匹配元素在当前视口的相对偏移。
返回的对象包含两个整形属性:top 和 left。此方法只对可见元素有效。
position():
获取匹配元素相对父元素的偏移。
jquery的动画函数主要分为三类:
a.基本动画函数,既有透明度渐变,又有滑动效果,是最常用的动画效果函数
b.滑动动画函数,仅使用滑动渐变效果
c.淡入淡出动画函数,仅使用透明度渐变效果
另外jquery也提供了自定义动画函数,将控制权放在我们手里自己定义动画效果
基本动画函数:
show(),无动画效果仅作显示,
show(speed,[callback]),以优雅的动画显示所有匹配的元素,并在显示完成后可选地触发一个回调函数,speed是一个时间量度,单位毫秒,显示后我们可以执行一个回调函数
hide与show类似,toggle()切换元素的可见状态,如果元素是可见的,切换为隐藏的,如果元素是隐藏的切换为可见的,
toggle(swith)根据swith参数切换元素的可见状态(true为可见,false为隐藏),相当于show()
和hide(),比如:var filp = 0;$("button").click(function(){$("p").toggle(filp++%2==0;)});
toggle(speed,[callback])以优雅的动画切换所有匹配的元素,并显式在完成后可选地触发
一个回调函数,"fast"代表快速,相当于200毫秒,slow代表慢速600,normal表示中等速度,
jquery基本动画函数就这三个:show(),hide(),toggle()都提供了无参的版本,也提供了两个参数的重载在回调函数function callback(){this;//dom element}中,this是执行此函数的dom对象,会在动画结束时执行.
注意:jquery对象中,隐藏的元素是不能够引发事件的,而我们在引发事件时一般只想引发当前事件,所以如果可能在某一元素上绑定多个事件,一般要取消事件冒泡event.stoppropagation();
jquery滑动动画函数sliding
slidedown(speed,[callback])通过高度变化(向下)来动态地显示所有匹配的元素,在显示完成后可选地触发一个回调函数,
slideup(speed,[callback])通过高度变化(向上)来动态地隐藏所有匹配元素,在隐藏完成后可选地触发一个回调函数
slidetoggle(speed,[callback])通过高度变化来切换所有匹配元素的可见性,并在切换完成后可选地触发一个回调函数
jquery淡入淡出动画函数fading:
fadein(speed,[callback])通过不透明度的变化来实现所有匹配元素的淡入效果,并在动画完成后可选地触发一个回调函数,$("p").fadein("slow");
fadeout(speed,[callback])与fadein类似,为淡出效果
fadeto(speed,opacity,[callback])把所有匹配元素的不透明度以渐进方式调整到指定的不
透明度,并在动画完成后可选地触发一个回调函数,$("p").fadeto("slow",0.66);
opacity参数的值从0-1,比如0.6表示透明度60%,和fadein与fadeout不同的是,fadeto只改变对象的透明度,即使透明为0对象仍然占位自定义动画函数custom;
animate(params,[duration],[easing],[callback])这个函数的关键在于指定动画形式及
结果样式属性对象,$("#block").animate({opacity:60%}),
animate(params,options),用于创建自定义动画函数
stop([clearqueue],[gotoend])停止所有在指定元素上运行的动画,clearqueue(boolean):
如果设置成true,则清空队列,可以立即结束动画,如果为true,则队列马上执行,gotoemd(boolean):让当前正在执行的动画立即完成,并且重设show和hide的原始样式,调用回调函数等.

参数说明:
params:一组包含作为动画属性和终值的样式属性和其值的集合.
duration:三种预定速度之一的字符串("slow","normal",or "fast")或表示动画时长的毫秒数值,如果省略则不会产生动画
easing:类型string,要使用的擦除效果的名称需要插件支持,默认jquery提供"linear"
和"swing",讲解:为了让元素逐渐达到params设置的最终效果,我们需要有一个函数来实现渐变,这类函数就叫做easing函数,但是这里需要传递的只是easing函数名称,使用前需要
先将easing函数注册到jquery上options参数:一组包含动画选项的值的集合,支持的属性如下:
duration,与上面的duration参数相同,easing与上面的easing参数相同,complete类型为function在动画完成时执行的函数,step:callback,queue(boolean),设定为false将使此
动画不进入动画队列.
动画特效示例jquery代码,该示例让一个图层从屏幕上方掉落到最下方,并且消失
 

复制代码 代码示例:
<script type="text/javascript">
$(function(){
$("#divpop").animate(
{
"opacity":"hide",
"top":$(window).height()-$("#divpop").height()-$("#divpop").position().top
},
600,
function(){
$("#divpop").hide();
}
);
});
</script>
 

让一个图层越来越大,知道消失jquery代码:
 

复制代码 代码示例:
$("#divpop").animate({
"opacity":"hide",
"width":$(window).width()-$("#divpop").offset().left,
"height":$(window).height()-$("#divpop").offset().top
});
 

jquery动画效果全局控制属性
jquery.fx.off返回boolean,是否关闭页面上所有的动画,设置为true可以立即关闭
所有动画,设置为false则可以重新开启所有动画,比如下面的代码会执行一个禁用的动画:
 

复制代码 代码示例:
jquery.fx.off=true;
$("#divpop").show(1000);