เอฟเฟกต์ Flip In Y
องค์ประกอบพลิกเข้ามาจากแกน Y (แนวตั้ง) เริ่มจาก 90° (มองไม่เห็น) หมุนมาเป็น 0° พร้อมเด้งเล็กน้อย (overshoot) ใช้ perspective สร้างความลึก
โค้ดตัวอย่างสมบูรณ์
<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: 1s;
animation-duration: 1s;
-webkit-animation-fill-mode: both;
animation-fill-mode: both;
}
@-webkit-keyframes flipInY {
0% { -webkit-transform: perspective(400px) rotateY(90deg); opacity: 0; }
40% { -webkit-transform: perspective(400px) rotateY(-10deg); }
70% { -webkit-transform: perspective(400px) rotateY(10deg); }
100% { -webkit-transform: perspective(400px) rotateY(0deg); opacity: 1; }
}
@keyframes flipInY {
0% { transform: perspective(400px) rotateY(90deg); opacity: 0; }
40% { transform: perspective(400px) rotateY(-10deg); }
70% { transform: perspective(400px) rotateY(10deg); }
100% { transform: perspective(400px) rotateY(0deg); opacity: 1; }
}
.flipInY {
-webkit-backface-visibility: visible !important;
-webkit-animation-name: flipInY;
backface-visibility: visible !important;
animation-name: flipInY;
}
</style>
</head>
<body>
<div id="animated-example" class="animated flipInY"></div>
<button onclick="myFunction()">Reload page</button>
<script>
function myFunction() { location.reload(); }
</script>
</body>
</html>
การวิเคราะห์ Keyframes
| ขั้นตอน | Rotate Y | Opacity | พฤติกรรม |
|---|---|---|---|
| 0% | 90° | 0 | เริ่มหมุนตั้ง (มองไม่เห็น) |
| 40% | -10° | - | หมุนเกินจุด (ซ้าย) |
| 70% | 10° | - | เด้งกลับ (ขวา) |
| 100% | 0° | 1 | หยุดตรงหน้า |
ความสำคัญของ backface-visibility
backface-visibility: visible จำเป็นต้องมี เพราะขณะหมุน 90° ด้านหลังของ element จะมองเห็น ถ้าไม่ตั้งค่านี้ จะมองไม่เห็นขณะหมุน