在CSS中,通過路徑移動元素是一個非常常見的特效。例如,當我們鼠標懸停在一個圖片上時,圖片可能會按照一定的路徑移動,這時我們可以使用CSS中的animation來實現這一特效。
.hover { position: relative; /* 設置相對位置 */ } .hover img { position: absolute; /* 設置絕對位置 */ top: 0; left: 0; animation: move 1s forwards; /* 運動路徑以及持續時間 */ } @keyframes move { 0% { transform: translate(0,0); /* 初始狀態 */ } 50% { transform: translate(100px,50px); /* 中途狀態 */ } 100% { transform: translate(200px,100px); /* 結束狀態 */ } }
上述代碼中,我們首先將圖片所在的容器設為相對位置,接著將圖片本身設為絕對位置,并為它設置了一個動畫效果,即在1秒的時間內按照move的規則移動,forwards則是使其停留在結束狀態。而move這個規則我們使用了@keyframes關鍵字聲明。其中,0%表示起始狀態,50%表示中間狀態,100%表示結束狀態。我們使用了transform的translate屬性來控制圖片的運動路徑,上述代碼則是實現了沿著一條以(0,0)開始,(200,100)結束的直線路徑移動。
當然,這只是一個簡單的例子。我們可以通過更改@keyframes中的具體參數以及使用更多的CSS屬性來實現更多種類的路徑移動效果。同時,CSS中還有很多其他的動畫屬性與命令可以使用,包括transition、rotate、scale等等。通過靈活的運用這些特性,我們可以創造出更為多彩的頁面特效。