使用純CSS實(shí)現(xiàn)一個(gè)人獨(dú)自行走的動(dòng)畫效果?這個(gè)問題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見到的。希望通過這個(gè)問題能讓你收獲頗深。下面是小編給大家?guī)淼膮⒖純?nèi)容,讓我們一起來看看吧!
為鼓樓等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及鼓樓網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為做網(wǎng)站、網(wǎng)站設(shè)計(jì)、鼓樓網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!效果預(yù)覽源代碼下載https://github.com/comehope/front-end-daily-challenges
代碼解讀定義 dom,容器中包含 3 個(gè)元素,分別代表頭、身體和腳:
居中顯示:
body { margin: 0; height: 100vh; display: flex; align-items: center; justify-content: center; background: radial-gradient(lightgray 20%, whitesmoke); }
定義容器尺寸:
.man { width: 12em; height: 33em; font-size: 10px; position: relative; }
定義主色:
.man { color: white; }
畫出頭部:
.head { position: absolute; width: 7em; height: 7em; background-color: currentColor; border-radius: 50%; right: 0; }
畫出身體:
.body { position: absolute; width: 6.2em; height: 14.4em; background-color: currentColor; top: 7em; border-radius: 100% 20% 0 0; }
畫出腳,現(xiàn)在只能看到一只腳,是因?yàn)閮芍荒_重疊在一起,一會(huì)兒動(dòng)起來時(shí)就能看到兩只腳了:
.feet::before, .feet::after { content: ''; position: absolute; width: 4em; height: 1.4em; background-color: white; bottom: 0; left: -1.6em; border-radius: 1em 80% 0.4em 0.4em; }
用偽元素畫出陰影:
.man::before { content: ''; position: absolute; width: 12em; height: 0.8em; background-color: rgba(0, 0, 0, 0.1); bottom: -0.2em; left: -3em; border-radius: 50%; }
接下來增加動(dòng)畫效果。
增加行走的動(dòng)畫效果,并使兩只腳的動(dòng)畫時(shí)間交錯(cuò):
.feet::before, .feet::after { animation: feet-animation 2s ease-in-out infinite; } .feet::after { animation-delay: 1s; } @keyframes feet-animation { 20% { transform: translateX(3.4em) translateY(-1.6em) rotate(4deg); } 30% { transform: translateX(4.6em) translateY(-1em) rotate(0deg); } 40% { transform: translateX(5.6em) translateY(-0.6em) rotate(4deg); } 44% { transform: translateX(5.6em) translateY(0) rotate(0deg); } }
增加頭和身體起伏的動(dòng)畫效果:
.head, .body { animation: body-animation 4s ease-in-out infinite; } @keyframes body-animation { 0%, 100% { transform: translateY(0) skewX(-2deg); } 25%, 75% { transform: translateY(0.5em) skewX(0deg); } 50% { transform: translateY(0) skewX(0deg); } }
增加陰影面積隨身體運(yùn)動(dòng)而變化的動(dòng)畫效果:
.man::before { animation: shadow-animate 4s ease-in-out infinite; } @keyframes shadow-animate { 0%, 50%, 100% { transform: scale(1); } 25%, 75% { transform: scale(1.15); } }
感謝各位的閱讀!看完上述內(nèi)容,你們對(duì)使用純CSS實(shí)現(xiàn)一個(gè)人獨(dú)自行走的動(dòng)畫效果大概了解了嗎?希望文章內(nèi)容對(duì)大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)網(wǎng)站制作公司行業(yè)資訊頻道。