在Web開發中,CSS3動畫已經成為一種常見的效果,使得網頁更加生動、有趣。CSS3動畫可以用于各種場景,例如在頁面加載時展示動態效果,或者在用戶交互時引起注意:
/* 實現CSS3動畫的幾種方式 */ /* 1. 使用 @keyframes 關鍵字 */ @keyframes my-animation { 0% { opacity: 0; } 50% { opacity: 1; } 100% { opacity: 0; } } .my-element { animation: my-animation 5s infinite; } /* 2. 使用 transition 屬性 */ .box { background: red; transition: background-color 1s ease; } .box:hover { background-color: blue; } /* 3. 使用 transform 屬性 */ .rotate { transform: rotate(45deg); } /* 4. 使用 perspective 屬性 */ .rotate3D { perspective: 1000px; transform-style: preserve-3d; transform: rotateY(45deg); }
這里介紹了常見的四種實現CSS3動畫的方法:
第一種方法使用了 @keyframes 關鍵字。通過定義關鍵幀,設置動畫效果的開始和結束狀態,再通過 animation 屬性指定動畫名稱和時間等參數。在這個例子中,我們定義了一個名為 my-animation 的動畫,在 5 秒內不斷重復。這個動畫的實現將從透明度為 0 開始,10%的時間內逐漸變為不透明,然后在接下來的40%時間內保持完全不透明,最后在接下來的50%時間內逐漸變為透明度為0。
第二種方法使用了 transition 屬性。當元素的屬性發生變化時(例如背景顏色),可以通過 transition 屬性來指定過渡效果的持續時間、動畫速度和時間函數等參數。在這個例子中,當鼠標移到具有.box類的元素上時,背景顏色會從紅色平滑地過渡到藍色。
第三種方法使用了 transform 屬性。通過 transform 屬性可以實現元素的縮放、旋轉和平移等效果。在這個例子中,元素會順時針旋轉角度為45度。
第四種方法使用了 perspective 屬性。通過 perspective 屬性可以實現元素的立體效果。在這個例子中,我們設置了一個視距為1000像素,并使用了 rotateY(45deg)來使元素繞著Y軸順時針旋轉。