欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

jQuery动画

程序员文章站 2022-07-14 21:52:59
...

隐藏和显示

.hide()隐藏
.show()显示
.toggle()隐藏和显示切换
可以加入时间参数和回调函数(在动画完成时执行)

 $('.text').hide();

 $('.text').show(300, function() {
    alert('hello.');
});

$('.text').toggle(1000);

渐变.fadeIn() .fadeOut() .fadeToggle()

使用方法同上面相同,效果为淡入淡出

滑动.slideDown() .slideUp() .slideToggle()

使用方法同上面相同,效果为元素的高度逐渐拉开,这会导致页面的下面部分滑下去

  <div class="ct">
    <ul>
      <li class="item">
        <h3>标题1</h3>
        <p>内容1</p>
      </li>
      <li class="item">
        <h3>标题2</h3>
        <p>内容2</p>
      </li>
      <li class="item">
        <h3>标3</h3>
        <p>内容3</p>
      </li>
      <li class="item">
        <h3>标题4</h3>
        <p>内容4</p>
      </li>
    </ul>
  </div>

<script>
$('.ct .item').on('mouseenter', function(){
   $(this).find('p').slideDown(300);
});
$('.ct .item').on('mouseleave', function(){
   $(this).find('p').slideUp(300);
});

自定义.animate()

参数包括,CSS属性和值的对象(必须),时间(可选),回调函数(可选),其中回调函数是同步加载的,例子

        $(".btn").on('click', function(e){
            $(".box").animate({
              width: '200px',
              height: '100px',
              opacity: 0.5,
              left: '100px'
            }, 1000, function(){
              console.log('456')
            });
            console.log('123')
        });
// 动画开始同时打印123,动画结束打印456

一次加载多个动画,并且防止重复点击。

      var pos = [
        {left: '100px', top: 0},
        {left: '100px', top: '50px'},
        {left: '200px', top: '50px'},
        {left: 0, top: '50px'},
        {left: 0, top: 0},
      ]

      var isMove = false;
      var $box = $('.box')

      $('.btn').on('click',function(){
        if(!isMove){
          isMove = true;
          $box.animate(pos[0])
          $box.animate(pos[1])
          $box.animate(pos[2])
          $box.animate(pos[3])
          $box.animate(pos[4], function(){
            isMove = false
          })
        }
      })

停止.stop( [clearQueue ], [ jumpToEnd ] )和清空动画队列.finish()

  • .stop()的clearQueue参数为false(默认)的时候为跳过当前动画,从下一个动画开始执行;参数为true的时候则停止整个动画序列,之后的动画不再执行
  • .stop()的jumpToEnd参数为false(默认)的时候CSS停在动画执行停止的过程中,参数为true的时候则CSS会跳转到目标状态(及即当前动画完成时的状态)
  • .finish()清空动画队列,CSS直接跳转到最后一个动画的目标状态。
      var pos = [
        {left: '100px', top: 0},
        {left: '100px', top: '50px'},
        {left: 0, top: '50px'},
        {left: 0, top: 0},
      ]

      var $box = $('.box')

      $('.btn').on('click',function(){
          $box.finish();
// 确保每次动画都是从头开始的
          $.each(pos, function(){
            $box.animate(this, 1000)
          })
      })

上一篇: jQuery动画

下一篇: jQuery动画