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

推薦する

シェルでパスワードなしでMySQLデータベースに素早くログインする方法

背景Shell の mysql-client を介して MySQL データベースにログインする場合、...

MySqlデータベースの基礎知識のまとめ

目次基本的なデータベース操作2) データベースを表示する3) データベースを選択する4) データベー...

Linux システムでのルート ディレクトリ拡張の概要

1. Linuxディスクの状態を確認する df -lh lsblkコマンドは、使用可能なすべてのブロ...

マウスを置いたときに半透明効果のテキスト説明を実現するための純粋な CSS (初心者は必読)

効果は以下のとおりです。 例1 例2:例1[結婚式の計画]を例にとるHTML: <div cl...

VSCode+CMake+Clang+GCC 環境構築チュートリアル (Win10 の場合)

大学院入試に備えて、C/C++ を使って基本的なデータ構造とアルゴリズムを実装する予定です。アルゴリ...

JavaScriptのアンチシェイクとスロットリングとは

目次1. 関数デバウンス1. 画像安定化とは何ですか? 2. 関数のスロットリング2.1 タイマーの...

win2008R2 64 ビット システムでの mysql5.7.17 のインストールと構成の例

123WORDPRESS.COM では、さまざまな環境での MYSQL の他のバージョンのインストー...

MySQL の詳細な単一テーブルの追加、削除、変更、クエリの CRUD ステートメント

MySQL の追加、削除、変更、クエリステートメント1. 練習シートを作成するここでの練習表は3つの...

Nginx 7層負荷分散のいくつかのスケジューリングアルゴリズムの簡単な理解

この記事は主に、Nginx 7 層負荷分散のいくつかのスケジューリング アルゴリズムを紹介します。こ...

Linux でタイムアウト付きの接続関数を試す

前回の記事では、Windows でタイムアウトを試してみました。この記事では、Linux で試してみ...

Typescriptを使用してWeChatミニプログラムでプロジェクトを作成する方法

プロジェクトを作成するWeChat開発者ツールでプロジェクトを作成し、言語でTypeScriptを選...

Docker swarm を使用して Nebula Graph クラスターを迅速にデプロイする方法のチュートリアル

1. はじめにこの記事では、Docker Swarm を使用して Nebula Graph クラスタ...

ウェブページ(ウェブサイト)のデザインと制作に関する考えや経験の共有

まずは投稿する前に! 「I Want to Study on My Own!」に改めて感謝します。た...

LinuxにMySQLデータベース5.6のソースコードをインストールし、ログインユーザーのパスワードを変更する

この記事では、主に Linux で MYSQL データベースをインストールする方法について説明し、M...