文斌的博客

学无止境
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

JQuery动画效果 转(jakwos)

Posted on 2011-03-10 13:30  文斌1988  阅读(3520)  评论(0编辑  收藏  举报

名词解释:
多播委托是jQuery自身的定义方式,即他不会覆盖原来在其document元素上绑定的事件,
不用我们自己设定,
事件冒泡是指在jQuery元素集同一事件上绑定了多个方法,当我们触发其中某一方法时,
将执行一系列方法,称之为事件冒泡取消事件冒泡的方式是:event.stopPropagation();

jquery冒泡事件 (锋利的jquery P109)

首先列举一个简单的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),用于创建自定义动画函数,http://www.w3school.com.cn/jquery/effect_animate.asp

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);

 


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jakwos/archive/2010/03/20/5397563.aspx