ホームページ  >  記事  >  ウェブフロントエンド  >  CSSとGSAPを使って枝の発芽のローダーアニメーションを実装する方法(ソースコード添付)

CSSとGSAPを使って枝の発芽のローダーアニメーションを実装する方法(ソースコード添付)

不言
不言オリジナル
2018-09-13 16:20:332055ブラウズ

この記事の内容は、CSSとGSAPを使用して枝の発芽のローダーアニメーションを実現する方法についてです(ソースコードを添付)。必要な友人が参考になれば幸いです。あなた。

エフェクトのプレビュー

CSSとGSAPを使って枝の発芽のローダーアニメーションを実装する方法(ソースコード添付)

ソースコードのダウンロード

https://github.com/comehop​​e/front-end-daily-challenges

コード解釈

domを定義します。コンテナには2つの要素が含まれます。branch は枝を表し、leaves は葉を表し、リーフには 6 つの子要素があり、6 つの葉を表します: branch 代表枝,leaves 代表叶,叶有 6 个子元素,代表 6 个叶片:

<figure>
    <div></div>
    <div>
        <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;
}

至此,静态效果绘制完成,接下来开始写动画脚本。
引入 GSAP 库:

<script></script>

声明一个时间线对象:

let animation = new TimelineMax();

增加树枝的入场动画效果,并为这个动画设置一个标签 branch

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

增加树叶的入场动画效果,它的参数中有 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});
葉のコンテナを定義し、葉が垂直方向に均等に配置され、下から上に配置されるように設定します:

rrreee

のサイズと背景色を設定します葉:

rrreee
左右の葉を設定します。 それぞれのスタイル:

rrreee

この時点で静的効果の描画が完了し、アニメーション スクリプトの作成を開始します。 GSAP ライブラリを導入します: rrreee

タイムライン オブジェクトを宣言します: rrreee 枝の入口アニメーション効果を追加し、このアニメーションのラベル branch を設定します:

rrreee

葉の入口アニメーションを追加しますこのパラメータには 3 つの 0.5 パラメータがあり、左から右に、アニメーションの継続時間、複数のリーフ アニメーションの間隔の継続時間、および branch に対する遅延を意味します。タグアニメーション 時間: 🎜rrreee🎜 葉が黄色に変わるアニメーション効果を追加します: 🎜rrreee🎜 フェードアウト効果を追加します: 🎜rrreee🎜 アニメーションを繰り返すようにタイムラインを宣言するコードを変更します: 🎜rrreee🎜終わり! 🎜🎜関連する推奨事項: 🎜🎜🎜🎜 CSS と GSAP を使用して複数のキーフレームで連続アニメーションを実装する方法 (ソース コードが添付されています) 🎜🎜🎜 純粋な CSS コードを使用して回転太極図を描画する方法 (コードが添付されています) 🎜🎜🎜

以上がCSSとGSAPを使って枝の発芽のローダーアニメーションを実装する方法(ソースコード添付)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。