详解jQuery中基本的动画方法

2020-05-24 21:33:23易采站长站整理

这个元素的边框会在一开始就添加到了元素上,要解决这个问题的办法就是使用回调函数

如果要同时运动可将要运动的值写在一起


$('.div1').click(function(){
$('.div2').animate({width:'350px',height:'300px'},600);
});

回调函数

回调函数适用与jQuery所有的动画效果方法

例如要解决链式写法css()属性会直接执行的问题可以采用回调函数的方法


$('.div1').click(function(){
$('.div2').animate({width:'350px'},600)
.animate({height:'300px'},600,function(){
$('.div2').css('border','10px solid black');
});
});

停止动画和判断是否处于动画状态

1、停止元素的动画

stop()方法接受两个参数

第一个参数为true或者false,表示是否要清空为执行完的动画队列,例如我们写链式动画时,如果第一个参数为true,当我们阻止了正在进行的一个动画操作后,后面的动画操作都会被清空,如果参数为false时,就只会阻止当前的这个动画,动画队列后的动画依旧执行

第二个参数为true或者false,表示是否要将正在执行的动画跳转到末状态

2、判断元素是否处于动画状态

如果用户频繁的执行一个animate()动画时,就会出现动画积累,解决方法就是判断元素是否正处于动画状态,如果元素不处于动画状态,才为元素添加新的动画


if(!$('div1').is(':animated')){
// 添加动画
}

3、延迟动画

如果要延迟执行一个动画,就可以使用delay()方法


$('.div1').click(function(){
$('.div2').animate({width:'350px'},600)
.delay(1000)
.animate({height:'300px'},600,function(){
$('.div2').css('border','10px solid black');
});
});

其他动画方法

1、slideToggle()方法

通过高度的变化来切换匹配的元素的可见性


$('.div1').click(function(){
$('.div2').slideToggle();
});

2、fadeTo()方法

可以把元素的不透明度以渐进的方式调整到指定的值,这个动画只调整元素的不透明度


$('.div1').click(function(){
$('.div2').fadeTo(600,0.5);
});

3、fadeToggle()方法

通过不透明度来切换匹配元素的可见性


$('.div1').click(function(){
$('.div2').fadeTo(600,0.5);
});