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

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


เอฟเฟกต์ Bounce Out Left

เอฟเฟกต์นี้ทำให้องค์ประกอบเด้งออกไปทางซ้ายพร้อมจางหาย คล้ายกับการโดนเตะออกทางซ้าย ใช้เหมาะกับการ dismiss element หรือ transition ระหว่างหน้า

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

<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 bounceOutLeft {
      0%   { -webkit-transform: translateX(0); }
      20%  { opacity: 1; -webkit-transform: translateX(20px); }
      100% { opacity: 0; -webkit-transform: translateX(-2000px); }
    }
    @keyframes bounceOutLeft {
      0%   { transform: translateX(0); }
      20%  { opacity: 1; transform: translateX(20px); }
      100% { opacity: 0; transform: translateX(-2000px); }
    }

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

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

ขั้นตอนTransformOpacityผลลัพธ์
0%translateX(0)1เริ่มต้นตำแหน่งเดิม
20%translateX(20px)1เด้งเล็กน้อยไปทางขวา (เตรียมแรง)
100%translateX(-2000px)0บินออกทางซ้ายจนหายไป

เคล็ดลับการปรับแต่ง

  • ปรับ animation-duration ให้เร็วขึ้น (0.5-1s) สำหรับ UI จริง
  • ลดระยะ translateX(-2000px) ให้เหมาะกับขนาดหน้าจอ
  • เพิ่ม animation-timing-function: ease-in เพื่อความเรียบเนียน