最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

如何使用CSS和GSAP實現(xiàn)樹枝發(fā)芽的loader動畫(附源碼)

來源:懂視網(wǎng) 責編:小采 時間:2020-11-02 22:07:54
文檔

如何使用CSS和GSAP實現(xiàn)樹枝發(fā)芽的loader動畫(附源碼)

如何使用CSS和GSAP實現(xiàn)樹枝發(fā)芽的loader動畫(附源碼):本篇文章給大家?guī)淼膬?nèi)容是關于如何使用CSS和GSAP實現(xiàn)樹枝發(fā)芽的loader動畫(附源碼) ,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。效果預覽源代碼下載https://github.com/comehope/front-end-daily-challenge
推薦度:
導讀如何使用CSS和GSAP實現(xiàn)樹枝發(fā)芽的loader動畫(附源碼):本篇文章給大家?guī)淼膬?nèi)容是關于如何使用CSS和GSAP實現(xiàn)樹枝發(fā)芽的loader動畫(附源碼) ,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。效果預覽源代碼下載https://github.com/comehope/front-end-daily-challenge
本篇文章給大家?guī)淼膬?nèi)容是關于如何使用CSS和GSAP實現(xiàn)樹枝發(fā)芽的loader動畫(附源碼) ,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

效果預覽

100607057-5b998ed9b6d5a_articlex.gif

源代碼下載

https://github.com/comehope/front-end-daily-challenges

代碼解讀

定義 dom,容器包含 2 個元素,branch 代表枝,leaves 代表葉,葉有 6 個子元素,代表 6 個葉片:

<figure class="sapling">
 <div class="branch"></div>
 <div class="leaves">
 <span></span>
 <span></span>
 <span></span>
 <span></span>
 <span></span>
 <span></span>
 </div>
</figure>

居中顯示:

body {
 margin: 0;
 height: 100vh;
 display: flex;
 align-items: center;
 justify-content: center;
 background-color: black;
}

定義容器尺寸,并設置子元素水平居中:

.sapling {
 position: relative;
 width: 5em;
 height: 17.5em;
 font-size: 10px;
 display: flex;
 justify-content: center;
}

畫出樹枝:

.branch {
 position: absolute;
 width: 0.2em;
 height: inherit;
 border-radius: 25%;
 background: burlywood;
}

定義樹葉容器,設置為葉片在垂直方向均勻分布,并且從下到上排列:

.leaves {
 position: absolute;
 width: inherit;
 height: 15em;
 top: 1em;
 display: flex;
 flex-direction: column-reverse;
}

設置葉片的尺寸和和背景顏色:

.leaves span {
 width: 2.5em;
 height: 2.5em;
 background-color: limegreen;
}

設置左右葉片的各自樣式:

.leaves span:nth-child(odd) {
 border-bottom-left-radius: 3em;
 border-top-right-radius: 3em;
 transform-origin: right bottom;
 align-self: flex-start;
}

.leaves span:nth-child(even) {
 border-bottom-right-radius: 3em;
 border-top-left-radius: 3em;
 transform-origin: left bottom;
 align-self: flex-end;
}

至此,靜態(tài)效果繪制完成,接下來開始寫動畫腳本。
引入 GSAP 庫:

<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/2.0.2/TweenMax.min.js"></script>

聲明一個時間線對象:

let animation = new TimelineMax();

增加樹枝的入場動畫效果,并為這個動畫設置一個標簽 branch

animation.from('.branch', 4, {scaleY: 0, ease: Power1.easeOut}, 'branch');

增加樹葉的入場動畫效果,它的參數(shù)中有 3 個 0.5,從左到右的含義分別是動畫時長、多個葉片動畫的間隔時長、相對 branch 標簽動畫的延遲時間:

animation.from('.branch', 4, {scaleY: 0, ease: Power1.easeOut}, 'branch')
 .staggerFrom('.leaves span', 0.5, {scale: 0, ease: Power1.easeOut}, 0.5, 0.5, 'branch');

增加葉片變黃的動畫效果:

animation.from('.branch', 4, {scaleY: 0, ease: Power1.easeOut}, 'branch')
 .staggerFrom('.leaves span', 0.5, {scale: 0, ease: Power1.easeOut}, 0.5, 0.5, 'branch')
 .to(['.branch', '.leaves span'], 3, {backgroundColor: 'yellow'});

增加淡出效果:

animation.from('.branch', 4, {scaleY: 0, ease: Power1.easeOut}, 'branch')
 .staggerFrom('.leaves span', 0.5, {scale: 0, ease: Power1.easeOut}, 0.5, 0.5, 'branch')
 .to(['.branch', '.leaves span'], 3, {backgroundColor: 'yellow'})
 .to(['.branch', '.leaves span'], 1, {autoAlpha: 0});

修改聲明時間線的代碼,使動畫重復播放:

let animation = new TimelineMax({repeat: -1, repeatDelay: 0.5});

大功告成!

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

如何使用CSS和GSAP實現(xiàn)樹枝發(fā)芽的loader動畫(附源碼)

如何使用CSS和GSAP實現(xiàn)樹枝發(fā)芽的loader動畫(附源碼):本篇文章給大家?guī)淼膬?nèi)容是關于如何使用CSS和GSAP實現(xiàn)樹枝發(fā)芽的loader動畫(附源碼) ,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。效果預覽源代碼下載https://github.com/comehope/front-end-daily-challenge
推薦度:
標簽: flex 動畫 源代碼
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top