1. 程式人生 > >animate.css用法介紹

animate.css用法介紹

animate.css介紹

  • animate.css是一個跨瀏覽器的css3動畫庫

animate.css基礎使用

  • 引入animate.css檔案
  • 給指定的元素新增基礎class animated
  • 給指定的元素新增動畫class
  • 如果需要無限做動畫, 新增 infinite 類名即可
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="./css/animate.css">
    <style>
        div{
            width: 200px;
            height: 200px;
            background-color: red;
            margin: 100px;
        }
    </style>
</head>
<body>

<div class="animated swing"></div>

</body>
</html>

animate.css和jQuery結合使用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        *{
            padding: 0;
            margin: 0;
        }
        div{
            width: 100px;
            height: 100px;
            background-color: orange;
            margin: 100px auto;
        }
    </style>
    <script src="./js/jquery.js"></script>
    <link rel="stylesheet" href="./css/animate.css">
    <script>
        $(document).ready(function () {
            console.log('test');
            $('#test').addClass('animated infinite rollIn');
        })
    </script>
</head>
<body>
<div id="test"></div>
</body>
</html>

animate.css動畫屬性設定

  • 編寫動畫屬性, 覆蓋animate.css庫中的預設屬性
  • 編寫的時候注意選擇器的權重
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <style>
      *{
          padding: 0;
          margin: 0;
      }
      div{
          width: 100px;
          height: 100px;
          background-color: gold;
          margin: 200px auto;
      }

      #test{
          /*設定動畫屬性*/
          animation-duration: 5s;
          animation-delay: 1s;
          animation-iteration-count: 2;
      }
  </style>
  <script src="./js/jquery.js"></script>
  <link rel="stylesheet" href="./css/animate.css">
  <script>
      $(document).ready(function () {
          var $test = $('#test');
          $test.addClass('animated swing');
      })
  </script>
</head>
<body>
<div id="test"></div>
</body>
</html>

animate.css動畫結束後回撥

  • 使用jQuery的one監聽動畫結束, 然後添加回調函式
  • 動畫結束事件 webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <style>
      *{
          padding: 0;
          margin: 0;
      }
      div{
          width: 100px;
          height: 100px;
          background-color: skyblue;
          margin: 200px auto;
      }

      #test{
          /*設定動畫屬性*/
          animation-duration: 3s;
          animation-delay: 5s;
          animation-iteration-count: 2;
      }
  </style>
  <script src="./js/jquery.js"></script>
  <link rel="stylesheet" href="./css/animate.css">
  <script>
      $(document).ready(function () {
          var $test = $('#test');
          $test.addClass('animated hinge');
          $test.one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function () {
              console.log('hello world'); // 兩次動畫完畢後才打印
              console.log(this); // dom元素
              $test.removeClass('hinge');
              $test.addClass('animated rotateIn');
          })
      })
  </script>
</head>
<body>
<div id="test"></div>
</body>
</html>