美文网首页
jQuery的动画效果与动画队列

jQuery的动画效果与动画队列

作者: 郑宋君 | 来源:发表于2018-11-18 16:08 被阅读0次

基础效果

.hide([duration ] [,easing ] [,complete ])

用于隐藏元素,没有参数的时候等同于直接设置 display 属性

$('.target').hide()
//等同于
$('.target').css('display', 'none')

.show([duration ] [,easing ] [,complete ])

用于展示元素,用法和hide()一样,但是效果是相反的

$('.btn').on('click',function(){
  $('.target').show()
})

.toggle([duration ] [,easing ] [,complete ])

用于切换元素的展示和隐藏,用法和上面两个api一样

$('.btn').on('click',function(){
  $('.target').toggle()
})

渐变

.fadeIn( [duration ] [, easing ] [, complete ] )

用于渐变显示元素

$('#fadeIn').click(function(){
  $('#box').fadeIn(1000)
})

.fadeOut( [duration ] [, easing ] [, complete ] )

用于渐变隐藏元素

$('#fadeOut').click(function(){
  $('#box').fadeOut(1000)
})

.fadeTo( duration, opacity [, easing ] [, complete ] )

调整匹配元素的透明度,方法通过匹配元素的不透明度做动画效果

$('#fadeTo').click(function(){
  $('#box').fadeTo(1000,0.5)
})

..fadeToggle( [duration ] [, easing ] [, complete ] )

通过匹配的元素的不透明度动画,来显示或隐藏它们,方法执行匹配元素的不透明度动画。当被可见元素调用时,元素不透明度一旦达到0,display样式属性设置为none ,所以元素不再影响页面的布局。

$('#fadeToggle').click(function(){
  $('#box').fadeToggle(1000)
})

滑动

.slideDown( [duration ] [, easing ] [, complete ] )

用滑动动画显示一个匹配元素,方法将给匹配元素的高度的动画,这会导致页面的下面部分滑下去,弥补了显示的方式

$('#slideDown').click(function(){
  $('#box').slideDown(1000)
})

.slideUp( [duration ] [, easing ] [, complete ] )

用滑动动画隐藏一个匹配元素,方法将给匹配元素的高度的动画,这会导致页面的下面部分滑上去,当一个隐藏动画后,高度值达到0的时候,display 样式属性被设置为none,以确保该元素不再影响页面布局。 display 样式属性将被设置为none,以确保该元素不再影响页面布局。

$('#slideUp').click(function(){
  $('#box').slideUp(1000)
})

.slideToggle( [duration ] [, easing ] [, complete ] )

切换滑上滑下操作

$('#slideToggle').click(function(){
  $('#box').slideToggle(1000)
})

自定义动画

.animate( properties [, duration ] [, easing ] [, complete ] )

properties是一个css属性和值的对象,动画将根据这组对象移动

$('#clickme').click(function() {
  $('#book').animate({
    opacity: 0.25,
    left: '+=50',
    height: 'toggle'
  }, 5000, function() {
    // Animation complete.
  });
});

动画队列

如果一个元素要进行很多的Jquery动画效果,代码如下,我们写代码容易进入一个很难受的回调地狱里面代码如下

<body>
  <div class="box"></div>
  <button id="all">动画</button>
  <button id="all-smill">简化代码</button>
</body>
<script>
$('#all').on('click',function(){
  $('.box').show(600,function(){
     $('.box').hide(600,function(){
       $('.box').fadeOut(5000,function(){
         $('.box').slideDown(1000,function(){
           $('.box').slideUp(1000,function(){
             $('.box').slideToggle(3000,function(){
               console.log('所有动画执行完毕')
             })
           })
         })
       })
     })
  })
})
</script>

这样的代码看起来不仅仅不好看,而且也不好后期维护,我们根据jQuery的特性,可以改写代码为

$('#all-smill').on('click',function(){
  $('.box').show(1000)
           .hide(1000)
           .fadeOut(1000)
           .slideDown(1000)
           .slideUp(1000)
           .slideToggle(1000,function(){
      console.log(‘动画执行完毕’)
  })
console.log('动画执行开始')
})

这样代码不仅仅简洁了很多,而且看起来也很舒服
说到这里,我们处理了回调地狱这个问题,我们也说一说关于jQuery的动画队列的问题
队列讲究先进先出
按照上面的代码,我们可以理解成我们的队列里面装入了jQuery函数

1.show()
2.hide()
3.fadeOut()
4.slideDown()
5.slideUp()
6.slideToggle()

当装入好了以后,我们首先执行console.log('动画执行开始')这条语句,然后开始执行按照顺序执行队列里面的动画show() ....
这就是动画队列

.clearQueue

清除动画队列中未执行的动画

.finish

清除动画队列中未执行的动画,并使选择对象达到动画队列的最后一帧

.stop( [clearQueue ] [, jumpToEnd ] )

相关文章

  • jQuery的动画效果与动画队列

    基础效果 .hide([duration ] [,easing ] [,complete ]) 用于隐藏元素,没有...

  • jQuery 动画队列

    jQuery 动画队列 动画队列的方法: 我们知道jQuery提供了以下几种方法来操作动画队列: stop([cl...

  • jQuery动画队列

    jQuery 动画队列 当在jQuery对象上调用动画方法时,如果对象正在执行某个动画效果,那么新调用的动画方法就...

  • jQuery动画队列

    什么是动画队列? jQuery动画存在一个队列, 会把事件产生的动画 放在一个队列中,当来不及执行这些事件队列的时...

  • animate

    jquery动画 显示与隐藏 淡入与淡出 滑动 停止动画 自定义动画 动画队列,将多组动画按顺序播放

  • jQuery动画队列

    队列实现是jQuery非常棒的一个拓展,使用动画队列可以使动画更容易实现。 .animate( propertie...

  • JQuery动画队列

    动画队列 当在jQuery对象上调用动画方法时,如果对象正在执行某个动画效果,那么新调用的动画方法就会被添加到动画...

  • jQuery动画队列

    队列 队列的本质是一个数组,对队列的理解先从数组的push和shift开始。push是从数组尾端插入新的元素,sh...

  • jQuery动画队列

    动画队列 动画队列可以说是动画执行的一个顺序机制,当我们对一个对象添加多次动画效果时后,添加的动作就会被放入这个动...

  • jQuery 动画队列

    动画 逐渐缩放$().show(speed,function) 显示 time是动画的时间,可以是$().hide...

网友评论

      本文标题:jQuery的动画效果与动画队列

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