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