jQuery動畫

隱藏和顯示

.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)
          })
      })
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 隱藏元素的hide方法 讓頁面上的元素不可見,一般可以通過設置css的display為none屬性。但是通過css...
    老夫撩發少年狂閱讀 1,111評論 0 2
  • 一、hide()、show()、toggle() //1.hide():在HTML文檔中,為一個元素調用hide(...
    空谷悠閱讀 583評論 0 0
  • jQuery中隱藏元素的hide方法 讓頁面上的元素不可見,一般可以通過設置css的display為none屬性。...
    阿r阿r閱讀 1,174評論 0 4
  • 一句話的緣分,讓我沉浸在王爾德獨到鮮明的人生思考和經典絕句中。莞爾一笑間的通達,頓覺一個男人的靈性與智慧。 奧斯卡...
    槑可兒閱讀 827評論 0 3
  • 如果下暴雨,請提醒所有孩子,朋友,同事,上學,上下班時,請在路邊臺階上行走,大街上可能會有井蓋被大水沖開,下雨為了...
    夜幕的繁華閱讀 139評論 0 0