純粋な CSS3 で蝶が羽ばたく様子を再現する例

純粋な CSS3 で蝶が羽ばたく様子を再現する例

純粋なCSS3で蝶が羽ばたく様子を再現。まずはその効果をご覧ください

どうですか?効果はかなりいいですよね?

上記のコード:

html

<div id="蝶">
    <div class="leftSide"></div>
    <div class="body"></div>
    <div class="rightSide"></div>
</div>

CS

体{
            背景: url("./images/bg.jpg") 繰り返しなし;
        }
        #蝶{
            幅: 600ピクセル;
            高さ: 500px;
            位置: 相対的;
            変換: スケール(0.35);
            変換スタイル: 3D を保持します。
        }
        .leftSide{
            幅: 267ピクセル;
            高さ: 421px;
            背景: url("./images/leftSide.png") 繰り返しなし;
            位置: 絶対;
            左: 26px;
            上: 40px;
            アニメーション: 左 2 秒無限;
            zインデックス: 9999;
        }
        @keyframes 左 {
            0%{
                変換: rotateY(0deg);
                変換の原点: 右中央;
                パースペクティブ: 201px;

            }
            50%{
                変換: rotateY(70deg);
                変換の原点: 右中央;
                パースペクティブ: 201px;

            }
            100%{
                変換: rotateY(0deg);
                変換の原点: 右中央;
                パースペクティブ: 201px;
            }
        }
        @keyframes 右 {
            0%{
                変換: rotateY(0);
                変換の原点: 左中央;
                パースペクティブ: 201px;

            }
            50%{
                変換: rotateY(-70deg);
                変換の原点: 左中央;
                パースペクティブ: 201px;

            }
            100%{
                変換: rotateY(0);
                変換の原点: 左中央;
                パースペクティブ: 201px;

            }
        }
        。体{
            幅: 152ピクセル;
            高さ: 328px;
            背景: url("./images/body.png") 繰り返しなし;
            位置: 絶対;
            マージン: 自動;
            左: 0;
            右: 0;
            下部: 0;
            上: 0;
            zインデックス: 9999;
        }
        .rightSide{
            幅: 284ピクセル;
            高さ: 460ピクセル;
            背景: url("./images/rightSide.png") 繰り返しなし;
            位置: 絶対;
            右: 26px;
            上: 58px;
            アニメーション: 右 2 秒無限;
            zインデックス: 9999;
        }

その前に、いくつかの CSS プロパティを紹介します。

@キーフレーム

  1. @keyframesルールを使用すると、アニメーションを作成できます
  2. アニメーションを作成する原則は、1 つの CSS スタイル セットを別のスタイル セットに徐々に変更することです。
  3. 変更が発生する時間をパーセンテージで指定するか、または 0% と 100% に相当するキーワード「from」と「to」を使用します。
  4. 0%はアニメーションの開始時間、100%はアニメーションの終了時間です

変換: rotateY()

  1. transform プロパティは、要素に 2D または 3D 変換を適用します。このプロパティを使用すると、要素を回転、拡大縮小、移動、傾斜させることができます。
  2. rotateY() は、Y 軸に沿った 3D 回転を定義します。

この図は、xyz 軸を明確に示しています。実際、3DS MAX などの 3D モデリング ソフトウェアを学習した学生は、これら 3 つの軸の方向をよりよく理解しているはずです。

実装のアイデア: まず、子と父を使用して、左翼、右翼、およびボディを絶対位置に配置し、それらを組み合わせます。次に、transform の rotateY を使用して、y 軸に沿って回転させます。ここで回転に @keyframe アニメーションを使用し、アクションを繰り返します。

transform-style: preserve-3d; プロパティにも注目する必要があります。W3C によれば、これにより、変換された子要素が 3D 変換を保持できるようになります。つまり、すべてのサブ要素は 3D 空間に表示されます。逆に、フラットに設定すると、すべてのサブ要素は 2D 空間に表示されます。

デモのダウンロードアドレス

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

<<:  MySQL 8.0.23 メジャーアップデート (新機能)

>>:  Javascriptの基本を詳しく説明

推薦する

MacOS に MySQL 8.0 をインストールして MySQL にログインする方法

公式チュートリアルに従って、インストール パッケージをダウンロードし、[インストール] をクリックし...

Windows 10 と MySQL 5.5 のインストールとインストールなしの使用の詳細なチュートリアル (画像とテキスト)

この記事では、Windows 10環境でのMySQL 5.5のインストールと使用方法を紹介します。リ...

Angularプロジェクトにおける共有モジュールの実装の詳細な説明

目次1. 共有共通モジュール2. 共有マテリアルモジュール3. 共有確認ダイアログ1. 共有共通モジ...

サイバーパンクスタイルのボタンを実現するためのHTML+CSS

まず効果を見てみましょう: 序文:このアイデアは、Bilibili のアップロード者 Steven ...

GoogleとFacebookがDockerを使わない理由

この記事を書いた理由は、修正した分散 PyTorch プログラムを Facebook のクラスター上...

テーブルの追加と削除の操作を実装する js

この記事の例では、テーブルを追加および削除するためのjsの具体的なコードを参考までに共有しています。...

Docker可視化ツールPortainerの導入と中国語翻訳

#docker 検索#docker プルポーター1. イメージを取得した後、中国語パッケージをダウン...

Vueのprops設定の詳細な説明

<テンプレート> <div class="demo">...

React 構成 px 変換 rem メソッド

関連する依存関係をインストールするnpm i lib-flexible --save npm i p...

HTML タグ: サブタグと sup タグ

今日はあまり使わないHTMLタグ「subタグ」と「supタグ」を紹介します。関連記事: HTML タ...

カラーブロックレポート効果の動的な表示を実現する HTML (サンプルコード)

HTMLカラーブロックを使用してデータを動的に表示する <スタイル タイプ="te...

CSSのマッチング問題を解決する

問題の説明ご存知のとおり、CSS を記述する場合、HTML のクラスの定義または ID の定義に従っ...

TypeScript 2.0 マーク付き共用体型の詳細な説明

目次タグ付きユニオン型を使用した支払い方法の構築タグ付きユニオン型を使用した Redux アクション...

ドラッグアンドドロップによる並べ替えの詳細を実現する js

目次1. はじめに2. 実装3. HTML ドラッグ アンド ドロップ API を使用しないのはなぜ...

DockerでLNMPアーキテクチャを展開する方法

環境要件: IPホスト名192.168.1.1ノード1プロジェクト計画:コンテナネットワークセグメン...