純粋な 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の基本を詳しく説明

推薦する

TOM.COMのホームページリニューアルの経験

<br />何の警告もなく、cnBeta で TOM.COM の Web サイトが再設計...

Linux の traceroute コマンドの使用方法の詳細な説明

Traceroute を使用すると、情報がコンピュータからインターネットの反対側のホストまでたどるパ...

MySQL ビューの一貫性を確保する方法の詳細な説明 (チェック オプション付き)

この記事では、例を使用して、MySQL ビューの一貫性を確保する方法 (チェック オプションを使用)...

MySQL INT型の完全な分析

序文: Integer は MySQL で最もよく使用されるフィールド型の 1 つで、通常は整数を格...

nginxとバックエンドポート間の競合の解決策

質問: Alice 管理システムを開発しているときに、すべてのバックエンド インターフェイスが最初の...

バッチファイルを処理するLinuxの1行コマンドの詳細な説明

序文最良の方法は、あなたが思いつく最も速い方法ではないかもしれません。職場で一時的に使用するスクリプ...

MySQL トランザクション分析

取引トランザクションはビジネス ロジックの基本単位です。各トランザクションは一連の SQL ステート...

html2canvasで画像が正常にキャプチャできない時の解決方法

質問まず、私が遭遇した問題についてお話しします。まず、そういった需要があるわけです。フロントエンドは...

Nginx におけるサーバーとロケーションのマッチングロジックの詳細な理解

サーバーマッチングロジックNginx は、リクエストを実行するサーバー ブロックを決定するときに、サ...

Docker での Redis 接続の急増をトラブルシューティングした実践的な記録

土曜日、本番サーバー上の Redis サーバーが利用できなくなり、エラー メッセージは次のようになり...

docker compose デプロイメントにおけるマスタースレーブレプリケーションの実装

目次構成解析サービス構築ディレクトリ構造ファイルを作成インスタンス構成サービスを開始するテストRed...

Tomcat での jar のロードに関する異常な問題の分析と解決

現象の説明:プロジェクトでは、Springboot を使用して Web プロジェクトを開始します。起...

デザインにおけるユーザーエクスペリエンスの背後にある8つのユーザー本能について話す

編集者注: この記事は、Teambition チームの @娄昊川 が寄稿したものです。Teambit...

docker-compose を使用して Clickhouse をすばやくデプロイする方法のチュートリアル

ClickHouse は、オープンソースの列指向 DBMS (Yandex によって開発) です。 ...

HTML テーブル マークアップ チュートリアル (38): ヘッダーの境界線の色属性 BORDERCOLOR

テーブルを美しくするために、ヘッダーに異なる境界線の色を設定できます。基本的な構文<TH 境界...