透過結合@keyframes
動畫,讓三角形實現旋轉、移動等動態效果
程式碼如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>帶動畫的CSS三角形示例</title> <style> body { font-family: Arial, sans-serif; display: flex; justify-content: center; align-items: center; min-height: 100vh; background-color: #f4f4f4; margin: 0; } .container { text-align: center; } h2 { font-size: 1.5rem; color: #333; margin-bottom: 10px; } .triangle { margin: 20px; animation-duration: 4s; animation-iteration-count: infinite; animation-timing-function: ease-in-out; } /* 向上的三角形,結合旋轉動畫 */ .triangle-up { width: 0; height: 0; border-left: 50px solid transparent; border-right: 50px solid transparent; border-bottom: 100px solid #3498db; animation-name: rotate; } /* 向下的三角形,結合上下移動動畫 */ .triangle-down { width: 0; height: 0; border-left: 50px solid transparent; border-right: 50px solid transparent; border-top: 100px solid #e74c3c; animation-name: move-up-down; } /* 向左的三角形,結合左右移動動畫 */ .triangle-left { width: 0; height: 0; border-top: 50px solid transparent; border-bottom: 50px solid transparent; border-right: 100px solid #2ecc71; animation-name: move-left-right; } /* 向右的三角形,結合縮放動畫 */ .triangle-right { width: 0; height: 0; border-top: 50px solid transparent; border-bottom: 50px solid transparent; border-left: 100px solid #f1c40f; animation-name: scale; } /* 旋轉動畫 */ @keyframes rotate { 0% { transform: rotate(0deg); } 50% { transform: rotate(180deg); } 100% { transform: rotate(360deg); } } /* 上下移動動畫 */ @keyframes move-up-down { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-50px); } } /* 左右移動動畫 */ @keyframes move-left-right { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(-50px); } } /* 縮放動畫 */ @keyframes scale { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.5); } } </style> </head> <body> <div class="container"> <h2>帶動畫的CSS三角形示例</h2> <div class="triangle triangle-up"></div> <div class="triangle triangle-down"></div> <div class="triangle triangle-left"></div> <div class="triangle triangle-right"></div> </div> </body> </html>
動畫效果解析:
-
旋轉動畫 (
rotate
): 向上的三角形會不斷旋轉,從0度到360度形成迴圈。
@keyframes rotate { 0% { transform: rotate(0deg); } 50% { transform: rotate(180deg); } 100% { transform: rotate(360deg); } }
2.上下移動動畫 (move-up-down
): 向下的三角形在垂直方向上移動,模擬“跳動”效果。
@keyframes move-up-down { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-50px); } }
3.左右移動動畫 (move-left-right
): 向左的三角形在水平方向上左右移動。
@keyframes move-left-right { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(-50px); } }
4.縮放動畫 (scale
): 向右的三角形會在大小之間切換,模擬“脈動”效果。
@keyframes scale { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.5); } }