CSS3的animation屬性可以制作復雜而又炫酷的動畫效果,其中的timing-function屬性可以用來調整動畫過程中的時間曲線,實現不同的動態效果,其中之一就是ease。
animation: myAnimationName 2s ease infinite; /*或單獨配置timing-function*/ animation-timing-function: ease;
ease是一種默認值的時間曲線,表示動畫開始和結束時速度較慢,中間快速運動,起到一種緩沖的效果,可以讓動畫更加自然、平滑、舒適。
舉例來說,我們可以利用ease實現一個簡單的滑動動畫:
.slide{ position: absolute; top: 50px; left: 50px; width: 100px; height: 100px; background-color: red; animation: slide 2s ease infinite; } @keyframes slide{ 0%{left: 50px;} 50%{left: 250px;} 100%{left: 50px;} }
上述代碼中,我們利用animation讓.slide元素以ease的方式無限循環滑動,在keyframes中定義了元素的起始、中間和結束狀態,實現了一個從左向右滑動、再從右向左滑動的效果。
除了ease,還有其他常用的時間曲線,如linear(勻速)、ease-in(加速度遞增)、ease-out(加速度遞減)、ease-in-out(先加速后減速)。如果我們需要更加細致的控制動畫效果,也可以使用貝塞爾曲線。
.animation{ animation-name: moveInLeft; animation-duration: .75s; animation-timing-function: cubic-bezier(.42,0,.58,1); } @keyframes moveInLeft { 0% { transform: translateX(-100%); } 100% { transform: translateX(0); } }
上述代碼中,我們用cubic-bezier函數定義了一個貝塞爾曲線,讓元素以動畫開始先緩慢啟動,然后加速向前,到達終點時再次減速到停止,實現了一種更加柔和的滑動動畫效果。
總之,通過調整timing-function屬性,我們可以輕松實現豐富多樣的動畫效果,為網頁增添更多的藝術和美感。
上一篇css2d放大