jQuery中的动画
jQuery中常用设置动画的方法
$("p").hide(1000); //隐藏$("p").css("display", "none");$("p").show(1000); //显示$("p").fadeOut(); //淡出,改变透明度$("p").fadeIn(); //淡入$("p").slideUp(); //改变高度$("p").slideDown();
自定义动画方法animate()
格式
animate(params, speed, callback);//params,样式及映射//speed,速度//callback,回调函数。在动画完成时执行的函数。
例子
<style type="text/css">*{margin:0;padding:0;}body { padding: 60px }#panel {position: relative; width: 100px; height:100px;border: 1px solid #0050D0;background: #96E555; cursor: pointer}</style><div id="panel"></div><script src="../../scripts/jquery.js" type="text/javascript"></script><script type="text/javascript">$(function(){$("#panel").click(function(){$(this).animate({left: "500px"}, 3000);})})</script>
累加动画
$(this).animate({left: "+=500px"}, 3000);
多重动画1
在一个animate()方法中应用多个属性,动画是同时发生的。
$(this).animate({left: "500px",height:"200px"}, 3000);
多重动画2
当以链式写法应用动画方法时,动画是按照顺序发生的。
$(this).animate({left: "500px"}, 3000).animate({height: "200px"}, 3000);
综合动画
$(this).animate({left: "400px", height:"200px" ,opacity: "0.5"}, 3000).animate({top: "200px" , width :"200px"}, 3000 ).fadeOut("slow");
回调函数和queue()队列
动画执行完成后,调用回调函数
其他非动画方法会插队,如果也要按照顺序执行,要写在回调或者queue()方法中
$(this).animate({left: "400px", height:"200px" ,opacity: "0.5"}, 3000).animate({top: "200px" , width :"200px"}, 3000 ,function(){$(this).css("border","5px solid blue");}).slideUp("slow");});$(this).animate({left: "400px", height:"200px" ,opacity: "0.5"}, 3000).animate({top: "200px" , width :"200px"}, 3000 ).queue(function(next){$(this).css("border","5px solid blue");next(); //继续下一个动画}).slideUp("slow");
判断是否动画中
if(!$("p").is(":animated")) {}
延迟动画
$(this).animate({left: "400px", height:"200px" ,opacity: "1"}, 3000).delay(1000).animate({top: "200px" , width :"200px"}, 3000 ).delay(2000).fadeOut("slow");
停止动画
stop([clearQueue],[gotoEnd]);//clearQueue,清空队列//gotoEnd,直接跳到动画的最终状态$(this).stop(); //清除一个动画队列$(this).stop(true); //清除所有动画队列$(this).stop(true, true); //清除动画队列,并到达最终状态
<script>$(function () {$(".button1").click(function () {$("#panel").animate({left: "400px", height:"200px" ,opacity: "0.5"}, 3000).animate({top: "200px" , width :"200px"}, 3000 ).fadeOut("slow");})$(".button2").click(function(){// $("#panel").stop(); //清除一个动画队列// $("#panel").stop(true); //清除所有动画队列$("#panel").stop(true, true); //清除动画队列,并到达最终状态})})</script><div id="panel"></div><button class="button1">button1</button><button class="button2">button2</button>
其他动画方法
toggle(); //切换可见slideToggle(); //通过高度切换可见fadeTo(600, 0.2); //到哪个透明度?fadeToggle() //通过透明度切换可见
我只是一个路过的来打

浙公网安备 33010602011771号