新聞中心
這篇文章給大家分享的是有關(guān)使用純CSS實(shí)現(xiàn)寶路薄荷糖的動(dòng)畫的方法的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧。
成都創(chuàng)新互聯(lián)專業(yè)成都做網(wǎng)站、網(wǎng)站制作,集網(wǎng)站策劃、網(wǎng)站設(shè)計(jì)、網(wǎng)站制作于一體,網(wǎng)站seo、網(wǎng)站優(yōu)化、網(wǎng)站營(yíng)銷、軟文發(fā)布平臺(tái)等專業(yè)人才根據(jù)搜索規(guī)律編程設(shè)計(jì),讓網(wǎng)站在運(yùn)行后,在搜索中有好的表現(xiàn),專業(yè)設(shè)計(jì)制作為您帶來(lái)效益的網(wǎng)站!讓網(wǎng)站建設(shè)為您創(chuàng)造效益。
效果預(yù)覽
源代碼下載
https://github.com/comehope/front-end-daily-challenges
代碼解讀
定義 dom,只有 1 個(gè)元素:
居中顯示:
body { margin: 0; height: 100vh; display: flex; align-items: center; justify-content: center; background-color: silver; }
定義容器尺寸:
.spinner { width: 50vmin; height: 50vmin; position: relative; }
用 before
偽元素畫出 1 個(gè)像寶路薄荷糖狀的黑色圓環(huán):
.spinner::before { content: ''; position: absolute; box-sizing: border-box; width: inherit; height: inherit; border: 12.5vmin solid; border-radius: 50%; }
接下來(lái)制作動(dòng)畫效果。
設(shè)置透視景深:
body { perspective: 400px; }
讓圓環(huán)在 z 軸上運(yùn)動(dòng):
.spinner::before { animation: spin 1.5s ease-in-out infinite both reverse; } @keyframes spin { 0%, 100% { transform: translateZ(10vmin); } 60% { transform: translateZ(-10vmin); } }
讓圓環(huán)在 z 軸距離較大時(shí)稍稍傾斜:
@keyframes spin { 0%, 100% { transform: translateZ(10vmin) rotateX(25deg); } 60% { transform: translateZ(-10vmin); } }
增加縮放效果:
@keyframes spin { 0%, 100% { transform: translateZ(10vmin) rotateX(25deg); } 33% { transform: translateZ(-10vmin) scale(0.4); } 60% { transform: translateZ(-10vmin); } }
用 after
偽元素再畫出一個(gè)白色的圓環(huán),并且讓它的動(dòng)畫延遲動(dòng)畫總長(zhǎng)的一半時(shí)間:
.spinner::before, .spinner::after { /*略*/ animation: spin 1.5s ease-in-out infinite both reverse; } .spinner::after { border-color: white; animation-delay: -0.75s; }
接下來(lái)制作容器的動(dòng)畫效果,為了不受子元素動(dòng)畫的影響,先暫時(shí)屏蔽偽元素的動(dòng)畫效果。
.spinner::before, .spinner::after { /* animation: spin 1.5s ease-in-out infinite both reverse; */ }
增加容器沿 x 軸旋轉(zhuǎn)的動(dòng)畫效果,動(dòng)畫時(shí)間為子元素動(dòng)畫時(shí)間的2倍:
.spinner { animation: wobble 3s ease-in-out infinite; } @keyframes wobble { 0%, 100% { transform: rotateX(15deg); } 50% { transform: rotateX(60deg); } }
增加容器沿 y 軸旋轉(zhuǎn)的動(dòng)畫效果:
@keyframes wobble { 0%, 100% { transform: rotateX(15deg) rotateY(60deg); } 50% { transform: rotateX(60deg) rotateY(-60deg); } }
增加容器整體旋轉(zhuǎn)的動(dòng)畫效果:
@keyframes wobble { 0%, 100% { transform: rotateX(15deg) rotateY(60deg); } 50% { transform: rotateX(60deg) rotateY(-60deg) rotate(180deg); } }
打開子元素的動(dòng)畫效果,使子元素的動(dòng)畫效果和容器的動(dòng)畫效果疊加:
.spinner::before, .spinner::after { animation: spin 1.5s ease-in-out infinite both reverse; }
最后,使子元素在 3d 空間上運(yùn)動(dòng):
.spinner { transform-style: preserve-3d; }
感謝各位的閱讀!關(guān)于使用純CSS實(shí)現(xiàn)寶路薄荷糖的動(dòng)畫的方法就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
名稱欄目:使用純CSS實(shí)現(xiàn)寶路薄荷糖的動(dòng)畫的方法
分享路徑:http://fisionsoft.com.cn/article/iepshp.html