CSSを使って目の前の星のアニメーション効果を実現する方法(ソースコード添付)

不言
リリース: 2018-10-12 16:07:35
転載
2801 人が閲覧しました

この記事の内容は、CSS を使用して星が見えるアニメーション効果を実現する方法に関するものです (ソース コード付き)。必要な方は参考にしていただければ幸いです。あなたにとって役に立ちました。

エフェクトのプレビュー

CSSを使って目の前の星のアニメーション効果を実現する方法(ソースコード添付)

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

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

コード解釈

domを定義します。コンテナには9つのサブ要素が含まれます:

<div>
    <span></span>
    <span></span>
    <span></span>
    <span></span>
    <span></span>
    <span></span>
    <span></span>
    <span></span>
    <span></span>
</div>
ログイン後にコピー

中央表示:

body {
    margin: 0;
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: black;
}
ログイン後にコピー

コンテナを設定しますneutron 要素は 3 * 3 グリッドを形成するようにレイアウトされます。--columns はグリッドの各側の子要素の数です。

.container {
    display: grid;
    --columns: 3;
    grid-template-columns: repeat(var(--columns), 1fr);
}
ログイン後にコピー

子要素のスタイルを定義します。

.container span {
    width: 25px;
    height: 25px;
    color: lime;
    background-color: currentColor;
}
ログイン後にコピー

子要素のアニメーション効果を増加します。アニメーションの合計時間は 5 秒で、そのうち最初の 1 秒 (0% ~ 20%) がアニメーションされ、残りの 4 秒 (20% ~ 100%) がアニメーションされます。 are static:

.container span {
    transform: scale(0);
    animation: spin 5s linear infinite;
}

@keyframes spin {
    0% {
        transform: rotate(0deg) scale(1);
    }

    5%, 15% {
        transform: rotate(90deg) scale(0);
        background: white;
    }

    17.5% {
        transform: rotate(180deg) scale(1);
        background-color: currentColor;
    }

    20%, 100% {
        transform: rotate(90deg) scale(0);
    }
}
ログイン後にコピー

各サブ要素のアニメーションが 4 秒以内の任意の時間ランダムに遅延するようにアニメーション遅延を設定します:

.container span {
    animation-delay: calc(var(--delay) * 1s);
}

.container span:nth-child(1) { --delay: 0.8 }
.container span:nth-child(2) { --delay: 0.2 }
.container span:nth-child(3) { --delay: 1.9 }
.container span:nth-child(4) { --delay: 3.9 }
.container span:nth-child(5) { --delay: 2.8 }
.container span:nth-child(6) { --delay: 3.5 }
.container span:nth-child(7) { --delay: 1.5 }
.container span:nth-child(8) { --delay: 2.3 }
.container span:nth-child(9) { --delay: 1.7 }
ログイン後にコピー

この時点で、静的効果は完了です。その後、dom 要素がバッチで処理されます。
d3 ライブラリを導入します:

<script></script>
ログイン後にコピー

css ファイル内の --columns 変数宣言を削除し、d3 を使用して変数に値を割り当てます:

const COLUMNS = 3;

d3.select('.container')
    .style('--columns', COLUMNS);
ログイン後にコピー

HTML ファイルを削除します。 <span></span> サブ要素は、d3 を使用して動的に生成されます。

d3.select('.container')
    .style('--columns', COLUMNS)
    .selectAll('span')
    .data(d3.range(COLUMNS * COLUMNS))
    .enter()
    .append('span');
ログイン後にコピー

CSS ファイル内の --layback 変数宣言を削除します。 d3 を使用して確率変数を生成します。番号:

d3.select('.container')
    .style('--columns', COLUMNS)
    .selectAll('span')
    .data(d3.range(COLUMNS * COLUMNS))
    .enter()
    .append('span')
    .style('--delay', () => Math.random() * 4);
ログイン後にコピー

最後に、辺の長さを 15 に変更して、より多くのサブ要素を生成し、視覚効果を強化します:

const COLUMNS = 15;
ログイン後にコピー
上記がこの記事の内容全体です。 、上記のコードで使用されているものについて css の知識については、PHP 中国語 Web サイトの css 開発マニュアル を参照してください。

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

ソース:segmentfault.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート