美文网首页
jQuery中的动画

jQuery中的动画

作者: AuthorJim | 来源:发表于2017-03-04 09:00 被阅读0次

jQuery中的动画

show()方法和hide()方法

控制元素的显示与隐藏,可以为该方法添加参数,使得元素可以动起来。

  • 可以为该方法传递一个速度关键字slow、normal、fast(600毫秒、400毫秒、200毫秒)
  • 可以为该方法的显示速度指定一个数字,单位是毫秒(1000毫秒)

fadeIn()方法和fadeOut()方法

与show()方法不同的是,fadeIn()与fadeOut()方法只改变元素的不透明度。

slideDown()方法和slideUp()方法

slideDown()方法和slideUp()方法只会改变元素的高度

自定义动画方法animate()

animate(params,speed,callback);

  1. params:一个包含岩石属性及值的映射,比如{property1:'value1',prperty2:'value2',...}
  2. speed:速度参数,可选
  3. callback:在动画完成时的执行函数,可选
    综合动画示例
$('div').mouseover(function () {
    $(this).animate({
        left: '+=300px',
        top: '+=300px',
        width: '200px',
        height: '200px',
        opacity: '0.3'
    },2000).animate({
        left: '+=300px',
        top: '-=300px',
        width: '100px',
        height: '100px',
        opacity: '1'
    },2000).fadeOut('3000');
});

自定义动画方法animate()

在上例中,若想在动画完成之后为div元素添加一个边框css('border','1px solid #0f0')。这样并不能得到预期的效果,而实际效果就是,刚开始执行动画的时候,css()的方法就执行了。其根本原因在于css()并不会加入到动画队列中,而是会立即执行。
如果想要达到预期的效果,我们需要把使用回调函数callback来对非动画方法实现排队

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

1.停止元素的动画

很多时候我们需要停止匹配元素正在进行的动画,此时我们需要使用stop()方法
stop([clearQueue],[gotoEnd]);
参数clearQueue与gotoEnd都是可选的,都为Boolean值。clearQueue表示立即清空为执行完的动画,gotoEnd代表是否直接将正在执行的动画跳转到末状态。

直接使用stop()方法,则会立即停止当前正在执行的动画,如果接下来还有动画等待执行,则以当前状态开始接下来的动画。

当为一个使元素绑定hover事件之后,用户把光标移入元素时会触发动画效果,而当这个动画还没结束时,用户就将光标移出了。那么改变移出时执行的动画就会被放入队列中,等待光标移入的动画结束后再执行。因此如果光标 的移入移出过快的话,就会导致动画效果与光标的动作不一致。此时只需要在光标的移入移出的动画之前加入stop()方法,就可解决。

$('div').hover(function () {
    $(this).stop().animate({
        width: '200px',
    });
},function () {
   $(this).stop().animate({
        height: '50px'
    });
});

可是如果遇到组合动画

$('div').hover(function () {
    $(this).stop().animate({
        width: '200px',
    }).animate({
        left: '+=300px',
    });
},function () {
   $(this).stop().animate({
        height: '50px'
    });
});

这时的stop()只会停止正在进行的动画。如果动画正在执行第一阶段(改变width)鼠标触发移出事件之后,只会停止当前的动画,并继续执行改变left的动画,而光标移出事件要等这个动画完成后才能执行。在这种情况下,我们可以设置stop()方法的第一个参数为true,此时程序会把当前元素接下来的尚未执行动画全部清空。第二个参数gotoEnd用于直接让当前动画到达结束时刻,通常用于后一个动画需要基于前一个动画的末状态的情况。

2. 判断元素释放处于动画状态

在使用animate()动画的时候,要避免动画积累导致动画与用户的行为不一致。解决办法就是判断元素是否处于动画状态,如果元素不处于动画状态,才为元素添加新的动画。
及其重要,特别常用

if (!$(element).is(':animated')){   //判断元素释放处于动画状态
    //如果没有处于动画状态,则添加新动画
}

3. 延迟动画

在动画执行过程中,如果想对动画进行延迟操作,可以使用delay()方法

 $(this).animate({left: '400px'},3000)
        .delay(1000)
        .animate({top: '100px'},2000)
        .delay(2000)
        .animate({height: '100px'},800);

4. 其他动画方法

  • toggle(speed,[callback]) 切换样式的可见状态
  • sildeToggle(speed,[easing],[callback]) 通过高度的变化来切换元素的可见性
  • fadeTo(speed,opacity,[callback]) 将元素的不透明度以渐进的方法调整到指定值
  • fadeToggle(speed,[easing],[callback]) 通过不透明的变化来切换元素的可见性

动画队列

  • 当在一个animate()方法中应用多个属性时,动画是同时发生的
  • 当以链式写法应用动画方法时,动画是按顺序发生的

相关文章

  • jQuery动画与ajax

    jQuery动画与ajax jQuery 中, $(document).ready()是什么意思 jQuery的l...

  • jQuery的动画特效

    1.1 jQuery动画特效说明 jQuery框架中为我们封装了众多的动画和特效方法,只需要调用对应的动画方法传递...

  • jQuery(动画篇)

    四、动画篇 1. 动画基础隐藏和显示 (1) jQuery中隐藏元素的hide方法 过 jQuery,您可以使用 ...

  • jQuery中的动画

    jQuery中的动画 show()方法和hide()方法 控制元素的显示与隐藏,可以为该方法添加参数,使得元素可以...

  • jQuery中的动画

    基础动画 hide()隐藏 show()显示 toggle()可以将hide和show两种效果切换 渐变动画 fa...

  • jQuery中的动画

    jQuery最基本的动画方法是show()和hide()。如果为一个jQuery对象调用hide方法,则会将该对象...

  • jquery动画和循环

    jquery特殊效果 jquery动画 jquery循环

  • jQuery动画的easing插件Demo

    一、前言 从jQuery API 文档中可以知道,jQuery自定义动画的函数$().animate( prope...

  • jQuery特殊效果

    jQuery特殊效果 jQuery动画

  • jQuery 效果

    目录 jQuery 隐藏/显示jQuery 淡入淡出jQuery 滑动jQuery 动画jQuery Callba...

网友评论

      本文标题: jQuery中的动画

      本文链接:https://www.haomeiwen.com/subject/gsydgttx.html