css柳葉飛刀是一個(gè)常用的css技巧,它可以讓一個(gè)div或其他元素呈現(xiàn)出類似柳葉飛舞的效果。下面是一個(gè)css柳葉飛刀的例子:
.your-element { position: relative; overflow: hidden; transform-origin: bottom center; perspective: 500px; } .your-element:before { content: ""; position: absolute; top: 100%; left: -70%; width: 150%; height: 150%; background: #fff; transform: rotate(-45deg); transform-origin: top center; animation: fly-knife 1.5s linear infinite; } @keyframes fly-knife { 0% { transform: rotate(-45deg) translateY(-50%); } 100% { transform: rotate(-45deg) translateY(200%); } }
在上面的代碼中,.your-element代表你要應(yīng)用柳葉飛刀效果的元素。在這個(gè)元素內(nèi)部,我們用:before偽元素來創(chuàng)建一個(gè)旋轉(zhuǎn)的矩形。注意,這個(gè)元素需要有position:relative的屬性,這樣:before偽元素的position:absolute屬性才能按照.your-element的位置進(jìn)行絕對定位。overflow:hidden屬性可以隱藏在父容器之外的部分,從而達(dá)到柳葉飛舞的效果。
其中的關(guān)鍵在于動(dòng)畫的代碼:使用了CSS3新增加的animation屬性,通過rotate,translateY等屬性可以實(shí)現(xiàn)柳葉飛刀旋轉(zhuǎn)的效果。把a(bǔ)nimation定義在:before偽元素上,就會讓柳葉飛刀旋轉(zhuǎn)起來。
這是一個(gè)非常基礎(chǔ)的css柳葉飛刀實(shí)現(xiàn)過程,你可以根據(jù)自己的需求進(jìn)行修改。比如可以調(diào)節(jié)旋轉(zhuǎn)速度、方向等等。