この記事の内容は、純粋な CSS を使用して旗を振るアニメーション効果を実現する方法に関するものです (ソースコードが添付されています)。必要な方は参考にしていただければ幸いです。 。
https://github.com/comehope/front-end-daily-challenges
domを定義、コンテナには15の要素が含まれています:
<div> <span></span> <span></span> <span></span> <span></span> <span></span> <span></span> <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; }
コンテナサイズの定義:
.flag { width: 10em; height: 15em; font-size: 20px; }
線スタイルの設定:
.flag span { width: 0.25em; height: inherit; background-color: deepskyblue; }
線タイルの作成:
.flag { display: flex; justify-content: space-between; }
3D遠近効果の追加:
.flag { transform: perspective(500px) rotateY(-20deg); }
左右の動きのアニメーション効果を定義:
.flag span { animation: wave 1.5s ease-in-out infinite alternate; } @keyframes wave { to { transform: translateX(2em); } }
要素を設定変数値:
.flag span:nth-child(1) { --n: 1; } .flag span:nth-child(2) { --n: 2; } /* 共 15 个元素,每元素的 --n 变量值等于它的序号。 */ /* 中间代码略 …… */ .flag span:nth-child(14) { --n: 14; } .flag span:nth-child(15) { --n: 15; }
各行のアニメーションを遅延させて、旗が飛んでいる効果を作成します:
.flag span { animation-delay: calc(var(--n) * -0.1s); }
最後に、光と影の効果を追加します:
.flag span { background-color: ghostwhite; } @keyframes wave { to { transform: translateX(2em); background-color: deepskyblue; } }
これで完了です。
関連する推奨事項:
純粋な CSS を使用して、ボールが長方形の背景に変化するボタンのホバー効果を実現する方法 (ソースコードが添付されています)
CSS と D3 を使用して、小さな魚のインタラクティブなアニメーションを実現する方法水泳 (コード付き)
以上が純粋な CSS を使用して旗を振るアニメーション効果を実現する方法 (ソース コードを添付)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。