CSS3動畫銜接是指在實現復雜動畫效果時,將多個動畫效果無縫銜接起來,實現更加流暢的過渡效果。下面以一個例子來說明CSS3動畫銜接的實現方法:
.box { position: absolute; left: 0; top: 0; width: 100px; height: 100px; background-color: red; animation-name: move; animation-duration: 3s; animation-timing-function: cubic-bezier(0.1, 0.7, 1.0, 0.1); animation-iteration-count: infinite; animation-direction: alternate; } @keyframes move { 0% { transform: translateX(0); } 50% { transform: translateX(200px); opacity: 0.5; } 100% { transform:translateX(400px); opacity: 1; } }
以上代碼表示一個紅色的正方形在動畫時間內先從左向右移動200px,透明度變成0.5,然后再向右移動200px,透明度變為1,循環執行這個動畫效果。但是這個動畫效果有一個明顯的問題,就是在50%的時候突然從200px的速度減緩到0,再從0的速度加速到200px,這個過程顯得很生硬。
為了解決這個問題,我們可以增加一個中間的動畫效果來實現更加流暢的過渡效果:
.box { position: absolute; left: 0; top: 0; width: 100px; height: 100px; background-color: red; animation-name: move; animation-duration: 3s; animation-timing-function: cubic-bezier(0.1, 0.7, 1.0, 0.1); animation-iteration-count: infinite; animation-direction: alternate; } @keyframes move { 0% { transform: translateX(0); } 25% { transform: translateX(100px); opacity: 0.5; } 50% { transform: translateX(200px); opacity: 1; } 75% { transform: translateX(300px); opacity: 0.5; } 100% { transform:translateX(400px); opacity: 1; } }
以上代碼增加了25%和75%的動畫效果,這樣可以實現更加流暢的過渡效果,達到更好的動畫效果。