show()、hide()、toggle()等方法动画查询

show()显示、hide()隐藏、toggle()切换

slideDown()、slideUp()、slideToggle()方法

slideDown : 下滑展开
slideUp:上滑收回
slideToggle : 滑动切换

slideDown()的起点一定是display:none换句话说,只有display:none的元素,才能够调用slideDown()
动画机理:
一个display:none的元素,瞬间显示,瞬间高度变为0,然后jQuery自己捕捉原有的height设置为动画的终点。

等价于4条语句:

1$("div").show();  //瞬间显示
2var oldHeight = $("div").css("height");   //记忆住原有的高度
3$("div").css("height",0);   //瞬间变为0
4$("div").animate({"height" : oldHeight},1000);   //动画!终点是oldHeight

相反的,slideUp()的终点就是display:none;
同样的,slideDown、slideUp、slideToggle里面可以写动画时间、回调函数。

fadeIn()、fadeOut()、fadeTo()、fadeToggle()方法

fadeIn()淡入
fadeOut()淡出
fadeTo() 淡到那个数
fadeToggle() 淡出入切换

fadeIn()的起点是display:none;换句话说,只有display:none的元素,才能执行fadeIn()
$("div").fadeIn(5000);

动画机理:
一个display:none的元素,瞬间可见,然后瞬间变为opacity:0,往自己的opacity上变。如果没有设置opacity,就往1变。

fadeTo有三个参数,第一个参数是动画的时间,第二个参数是要变到的透明度,第三个参数是回调函数。
$("div").fadeTo(1000,0.3);
fadeTo的起点不一定是display:none;

stop()

stop()挺有意思的:

停止当前的animate动画,但是不清除队列,立即执行后面的animate动画:
$("div").stop(); //等价于$(“div”).stop(false,false);

停止当前的animate动画,并且清除队列,盒子留在了此时的位置:
$("div").stop(true); //等价于$(“div”).stop(true,false);

瞬间完成当前的animate动画,并且清除队列:
$("div").stop(true,true);

瞬间完成当前的animate动画,但是不清楚队列,立即执行后面的动画:
$("div").stop(false,true);

公式:
stop(是否清除队列,是否瞬间完成当前动画)
如果没有写true或者false,默认是false

finish()

finish()瞬间完成所有动画队列!
$("div").finish();

stop可以用来防止动画的积累:
1//连续打点语法,先清除所有的动画队列,然后执行新的动画
$("div").stop(true).animate({"left":100},1000);

delay()

delay延迟,可以使用连续打点,必须放在运动语句之前。
$("div").delay(1000).animate({"left":500},1000);

$("div").delay(1000).slideUp();

$("div").delay(1000).hide(1); //必须写1,写1了就是运动

小窍门,让所有的img元素,都延迟不同的时间入场:
$("img").each(function(i){ //attr就表示得到标签内的属性
$(this).delay(i * 1000).fadeIn(1000);
});

is(":animated")

is()方法表示身份探测,返回true、false。
is表示“是不是”,而不是“是”
比如,判断点击的这个p是不是有t这个类:
$("p").click(function(){
alert( $(this).is(".t") );
});

is里面可以写筛选器:
判断点击的这个p是不是序号是奇数:
$(this).is("p:odd")
判断点击的这个p是不是序号小于3:
$(this).is("p:lt(3)")

还可以写
is(":animated")
判断这个元素是否在运动中。

判断是否在运动中,可以防止动画的积累:
if($(this).children(".dropbox").is(":animated")){
return;
}
只要动画正在进行,那么我不仅受更多的命令。
我们之前学习的stop(),哲学不一样,动画正在进行,立即停止手上的动画,执行新的命令。

你可能感兴趣的:(jquery)