CSS云層變換動畫可以通過CSS的transition和animation屬性實現,讓靜態的云層圖片變得動態起來。通常需要使用CSS的position屬性來配合實現動態效果。以下是一個簡單的CSS云層變換動畫的代碼實現:
.cloud { position: absolute; top: 100px; left: 100px; width: 300px; height: 150px; background: url('cloud.png') no-repeat; background-size: contain; transition: background-position 1s linear; animation: moveCloud 10s ease-in-out infinite; } @keyframes moveCloud { 0% { background-position: 0 0; } 100% { background-position: -600px 0; } }
上面的代碼中,.cloud是云層的CSS類名,使用了position:absolute將其定位。background屬性設置了云層的圖片資源以及不平鋪重復,background-size: contain讓圖片自適應大小。transition屬性將background-position屬性從初始狀態變成1s后的結束狀態,使云層的移動狀態更加平滑。animation屬性定義了moveCloud的關鍵幀動畫,其時間為10s,動畫節奏為ease-in-out,重復次數為無限次。
關鍵幀動畫中,0%時云層的background-position為0,即云層在初始位置。100%時,云層的background-position為-600px 0,即云層向右移動了600像素,達到了結束狀態。通過CSS動畫的無限重復,使得云層的運動變得連續有條理。