Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> CSS

สร้างเอฟเฟกต์ Bounce In Left ด้วย CSS Animation


เอฟเฟกต์ Bounce In Left

องค์ประกอบสไลด์เข้ามาจากซ้าย เด้งเกินจุด แล้วกลับมาตรงตำแหน่ง คู่คู่กับ Bounce In Right

โค้ดตัวอย่างสมบูรณ์

<html>
<head>
  <style>
    .animated {
      background-image: url(/css/images/logo.png);
      background-repeat: no-repeat;
      background-position: left top;
      padding-top: 95px;
      margin-bottom: 60px;
      -webkit-animation-duration: 10s;
      animation-duration: 10s;
      -webkit-animation-fill-mode: both;
      animation-fill-mode: both;
    }

    @-webkit-keyframes bounceInLeft {
      0%   { opacity: 0; -webkit-transform: translateX(-2000px); }
      60%  { opacity: 1; -webkit-transform: translateX(30px); }
      80%  { -webkit-transform: translateX(-10px); }
      100% { -webkit-transform: translateX(0); }
    }
    @keyframes bounceInLeft {
      0%   { opacity: 0; transform: translateX(-2000px); }
      60%  { opacity: 1; transform: translateX(30px); }
      80%  { transform: translateX(-10px); }
      100% { transform: translateX(0); }
    }

    .bounceInLeft {
      -webkit-animation-name: bounceInLeft;
      animation-name: bounceInLeft;
    }
  </style>
</head>
<body>
  <div id="animated-example" class="animated bounceInLeft"></div>
  <button onclick="myFunction()">Reload page</button>
  <script>
    function myFunction() { location.reload(); }
  </script>
</body>
</html>

การวิเคราะห์

ขั้นตอนTransform XOpacityพฤติกรรม
0%-2000px (ซ้ายนอกจอ)0เริ่มจากซ้าย
60%+30px (ขวาเกิน)1สไลด์เข้ามาเกินจุด
80%-10px (ซ้ายเล็กน้อย)1เด้งกลับ
100%01หยุดตรงจุด

การใช้งานคู่กับ Bounce In Right

.panel-left  { animation: bounceInLeft  0.6s ease-out; }
.panel-right { animation: bounceInRight 0.6s ease-out; }

ใช้สร้าง UI ที่ panel ทั้งสองข้างบินเข้ามาพร้อมกัน