jQuery使用手册之动态效果(6)

jQuery一直以来在效果外面口碑都不错一直以来jquery的插件很丰富,一些很好的效果,比如我写过fat.js的渐变褪色淡入淡出效果,在新版本的jquery1.2中,可以很方便的用

$("#go").click(function(){
  $(".block").animate( { backgroundColor: 'pink' }, 1000)
    .animate( { backgroundColor: 'blue' }, 1000);
});
来实现,效果很不错,可以在官方看到演示
另外jquery的插件频道改版了之后,个人感觉好了很多,
在将这部分之前我们先看个例子,相信做网页的朋友都遇到n级菜单的情景,但点击某菜单按钮时,如果它的子菜单是显示的,则隐藏子菜单,如果子菜单隐藏,则显示出来,jQuery实现上面效果只需要1句话就行,$("#a").toggle("slow"),传统的javascript做法是先用getElementById取出子菜单所在容器的id,在判断该容器的style.display是否等于none,如果等于则设为block,如果不等于这设为none,如果在将效果设置复杂一点,当点击按钮时,不是忽然隐藏和显示子菜单,而是高度平滑的转变,这时就要通过setTimeout来设置子菜单的height了,再复杂一点透明度也平滑的消失和显现,这时显现下来需要编写很多代码,如果js基础不好的朋友可能只能从别人写好的代码拿过来修改了!,学完jQuery后还需要抄袭修改别人的代码吗?下面我们逐个介绍jQuery用于效果处理的方法。

  • hide()  隐藏匹配对象 <p id="a">Hello Again</p><a href="#" onClick=’ ("#a").hide()’>jQuery</a>当点击连接时,id为a的对象的display变为none。

  • show() 显示匹配对象

  • hide(speed)  以一定的速度隐藏匹配对象,其大小(长宽)和透明度都逐渐变化到0,speed有3级("slow", "normal",  "fast"),也可以是自定义的速度。

  • show(speed)  以一定的速度显示匹配对象,其大小(长宽)和透明度都由0逐渐变化到正常

  • hide(speed, callback)  show(speed, callback) 当显示和隐藏变化结束后执行函数callback

  • toggle()    toggle(speed) 如果当前匹配对象隐藏,则显示他们,如果当前是显示的,就隐藏,toggle(speed),其大小(长宽)和透明度都随之逐渐变化。
    <img src="1.jpg" style="width:150px"/><a href="#" onClick='$("img").toggle("slow")'>jQuery</a>
  • fadeIn(speeds)   fadeOut(speeds)  根据速度调整透明度来显示或隐藏匹配对象,注意有别于hide(speed)和show(speed),fadeIn和fadeOut都只调整透明度,不调整大小
    <img src="1.jpg" style="display:none"/><a href="#" onClick='$("img ").fadeIn("slow")'> jQuery </a>
    点击连接后可以看到图片逐渐显示。

  • fadeIn(speed, callback)  fadeOut(speed, callback)   callback为函数,先通过调整透明度来显示或隐藏匹配对象,当调整结束后执行callback函数
    <img src="1.jpg"/><a href="#" onClick='$("img ").fadeIn("slow",function(){ alert("Animation Done."); })'> jQuery </a>
    点击连接后可以看到图片逐渐显示,显示完全后弹出对话框

  • fadeTo(speed, opacity, callback)  将匹配对象以speed速度调整倒透明度opacity,然后执行函数callback。Opacity为最终显示的透明度(0-1).
    <img src="1.jpg"/>
    <a href="#" onClick='$("img ").fadeTo("slow",0.55,function(){ alert("Animation Done."); })'> jQuery </a>
    大家可以看一下自己看看效果,如果不用jQuery,编写原始javascript脚本可能很多代码!

  • slideDown(speeds)  将匹配对象的高度由0以指定速率平滑的变化到正常!
    <img src="1.jpg" style="display:none"/>
    [*]<a href="#" onClick='$("img ").slideDown("slow")'>jQuery</a>
  • slideDown(speeds,callback)  将匹配对象的高度由0变化到正常!变化结束后执行函数callback

  • slideUp("slow")  slideUp(speed, callback) 匹配对象的高度由正常变化到0

  • slideToggle("slow") 如果匹配对象的高度正常则逐渐变化到0,若为0,则逐渐变化到正常