摘要:效果預覽按下右側的點擊預覽按鈕可以在當前頁面預覽,點擊鏈接可以全屏預覽。可交互視頻此視頻是可以交互的,你可以隨時暫停視頻,編輯視頻中的代碼。增加螺旋槳旋轉的動畫效果增加飛機飛行的動畫效果再增加飛機旋轉的動畫效果大功告成
效果預覽
按下右側的“點擊預覽”按鈕可以在當前頁面預覽,點擊鏈接可以全屏預覽。
https://codepen.io/comehope/pen/yxVYRL
可交互視頻此視頻是可以交互的,你可以隨時暫停視頻,編輯視頻中的代碼。
請用 chrome, safari, edge 打開觀看。
https://scrimba.com/p/pEgDAM/cmVLRc9
源代碼下載每日前端實戰系列的全部源代碼請從 github 下載:
https://github.com/comehope/front-end-daily-challenges
代碼解讀定義 dom,容器中包含 3 個子元素,分別表示機冀、螺旋槳和輪子,機冀有 4 片葉片,輪子左右各一只:
定義容器尺寸:
.plane { width: 28em; height: 13em; font-size: 10px; }
定義子元素整體布局和共有屬性:
.plane { display: flex; justify-content: center; position: relative; } .plane > * { position: absolute; } .plane > *::before, .plane > *::after { content: ""; position: absolute; }
定義基本色:
.plane { color: black; }
畫出雙冀:
.wings { width: inherit; display: flex; justify-content: center; } .wings::before { width: inherit; height: 0.5em; background-color: currentColor; } .wings::after { top: 4em; width: 90%; height: 0.4em; background-color: currentColor; }
畫出螺旋槳的中心:
.fans { width: 11em; height: 11em; outline: 1px dashed; background: radial-gradient( black 2.5em, transparent 2.5em ); }
定義葉片的形狀為半圓形:
.fans span { width: inherit; height: inherit; } .fans span::before { width: inherit; height: 50%; background-color: rgba(255, 255, 255, 0.4); border-radius: 50% 50% 0 0 / 100% 100% 0 0; }
分別旋轉葉片的角度,使 4 個頁片均勻分布在一個圓內:
.fans span::before { transform-origin: bottom; transform: rotate(calc((var(--n) - 1) * 90deg)); } .fans span:nth-child(1) { --n: 1; } .fans span:nth-child(2) { --n: 2; } .fans span:nth-child(3) { --n: 3; } .fans span:nth-child(4) { --n: 4; }
畫出 2 個輪子:
.wheels { width: 16em; height: 2em; outline: 1px dashed; bottom: 0; display: flex; justify-content: space-between; } .wheels span { position: static; width: 1em; height: inherit; background-color: currentColor; border-radius: 0.5em; }
畫出輪子的 2 個支架:
.wheels span { display: flex; justify-content: center; } .wheels span::before { width: 0.2em; height: 8em; background-color: currentColor; transform-origin: bottom; bottom: 1em; z-index: -1; } .wheels .left::before { transform: rotate(45deg); } .wheels .right::before { transform: rotate(-45deg); }
接下來制作動畫效果。
增加螺旋槳旋轉的動畫效果:
.fans span { animation: fans-rotating 0.8s linear infinite; animation-delay: calc(var(--n) * 0.1s); } @keyframes fans-rotating { to { transform: rotate(-1turn); } }
增加飛機飛行的動畫效果:
.plane { animation: fly 5s infinite; } @keyframes fly { 10%, 50%, 100% { top: 0; } 25% { top: 1em; } 75% { top: -1em; } }
再增加飛機旋轉的動畫效果:
.plane { animation: plane-rotating 10s infinite, fly 5s infinite; } @keyframes plane-rotating { 10%, 30%, 50% { transform: rotate(0deg); } 20% { transform: rotate(-4deg); } 80% { transform: rotate(8deg); } 100% { transform: rotate(-1turn); } }
大功告成!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/113836.html
摘要:效果預覽按下右側的點擊預覽按鈕可以在當前頁面預覽,點擊鏈接可以全屏預覽。可交互視頻此視頻是可以交互的,你可以隨時暫停視頻,編輯視頻中的代碼。增加螺旋槳旋轉的動畫效果增加飛機飛行的動畫效果再增加飛機旋轉的動畫效果大功告成 showImg(https://segmentfault.com/img/bVbgc89?w=400&h=302); 效果預覽 按下右側的點擊預覽按鈕可以在當前頁面預覽...
摘要:過往項目年月份項目匯總共個項目年月份項目匯總共個項目年月份項目匯總共個項目年月份項目匯總共個項目年月份項目匯總共個項目年月份項目匯總共個項目年月至年月發布的項目前端每日實戰專欄每天分解一個前端項目,用視頻記錄編碼過程,再配合詳細的代碼解讀, 過往項目 2018 年 9 月份項目匯總(共 26 個項目) 2018 年 8 月份項目匯總(共 29 個項目) 2018 年 7 月份項目匯總(...
摘要:效果預覽按下右側的點擊預覽按鈕可以在當前頁面預覽,點擊鏈接可以全屏預覽。可交互視頻此視頻是可以交互的,你可以隨時暫停視頻,編輯視頻中的代碼。 showImg(https://segmentfault.com/img/bVbibIK?w=400&h=301); 效果預覽 按下右側的點擊預覽按鈕可以在當前頁面預覽,點擊鏈接可以全屏預覽。 https://codepen.io/comehop...
閱讀 1828·2021-09-22 15:55
閱讀 3521·2021-09-07 10:26
閱讀 627·2019-08-30 15:54
閱讀 684·2019-08-29 16:34
閱讀 838·2019-08-26 14:04
閱讀 3258·2019-08-26 11:47
閱讀 2133·2019-08-26 11:33
閱讀 2293·2019-08-23 15:17