CSSは、他のレイヤーを変更せずに、多層ネスト構造の最外層を回転させる効果を実現します。

CSSは、他のレイヤーを変更せずに、多層ネスト構造の最外層を回転させる効果を実現します。

次のようなシナリオがあります。円形のコンテナで、最も外側のコンテナの背景が円弧になっています。内側のコンテナ内のコンテンツが回転しないようにするには、最も外側の円弧を回転させる必要があります。次に、解決策を紹介します。最終的な効果を見てみましょう。

実装のアイデア

  • 最も外側のdivは50%の面取りされた境界線を持つように設定され、オーバーフローは非表示になっています。
  • 最も外側の背景を円弧の背景画像に設定する
  • 外側のレイヤーの回転アニメーションを定義します。回転角度は正の数です。
  • 内部レイヤーの回転アニメーションを定義します。回転度は負です。
  • アニメーションを開始し、回転を開始します
  • 外側の層は正の数で回転し、内側の層は負の数で回転します。これにより、回転が打ち消され、理想的な効果が得られます。

実装プロセス

DOM構造部分: 外側のdivと内側のdivのレイアウト

load-panel は外側の div、 headPortrait-img-panelは内側の div、 loadWhirlは外側の回転アニメーション、 avatarRotationは内側の回転アニメーションです。

<!--アバターエリア-->
<div class="headPortrait-panel">
    <!--レイヤーを読み込んでいます-->
    <div class="load-panel loadWhirl">
        <!--アバター表示レイヤー-->
        <div class="headPortrait-img-panel アバター回転">
            <img src="../assets/img/login/[email protected]"/>
        </div>
    </div>
</div>

CSS 部分: スタイルをレイアウトし、回転アニメーション ロジックを実装します。

  /*アバターエリア*/
  .headPortrait-panel{
    幅: 100%;
    高さ: 200px;
    ディスプレイ: フレックス;
    コンテンツの中央揃え: 中央;
    アイテムの位置を中央揃えにします。
    上マージン: 50px;

    /*レイヤーをロード*/
    .load-panel{
      幅: 240ピクセル;
      高さ: 240px;
      境界線の半径: 50%;
      ディスプレイ: フレックス;
      コンテンツの中央揃え: 中央;
      アイテムの位置を中央揃えにします。
      背景: url("../img/login/[email protected]");

      画像{
        幅: 100%;
        高さ: 100%;
      }

      // アバターの回転 animation.avatarRotation{
        アニメーション: 内部アバター 3 秒リニア;
        // アニメーション無限ループ animation-iteration-count:infinite;
      }

      /*アバター表示レイヤー*/
      .headPortrait-img-panel{
        幅: 200ピクセル;
        高さ: 200px;
        境界線の半径: 50%;
        オーバーフロー: 非表示;
        境界線: 実線 1px #ebeced;

        画像{
          幅: 100%;
          高さ: 100%;
        }
      }
    }

    // 外部回転アニメーション.loadWhirl{
      アニメーション: 外部Halo 3s リニア;
      // アニメーション無限ループ animation-iteration-count:infinite;
    }
  }

  // 外部ハロー回転アニメーションを定義する @keyframes externalHalo {
    0%{
      変換: 回転(0度);
    }
    25%
      変換: 回転(90度);
    }
    50%{
      変換: 回転(180度);
    }
    100%{
      変換: 回転(360度);
    }
  }

  // 内部アバター回転アニメーションを定義する @keyframes internalAvatar {
    0%{
      変換: 回転(0度);
    }
    25%
      変換: 回転(-90度);
    }
    50%{
      変換: 回転(-180度);
    }
    100%{
      変換: 回転(-360度);
    }
  }

プロジェクトギャラリー

上記コードアドレス: chat-system

プロジェクトをローカルにクローンした後、http://localhost:8020/login にアクセスして効果を確認します。この記事のファイル パスは src/views/login.vue です。

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

<<:  入力タイプとは何を意味し、入力を制限する方法

>>:  Nginx の負荷分散と動的および静的分離の原理と構成

推薦する

CentOS 7にMySQLをインストールする詳細な手順

CentOS7では、MySQLをインストールすると、MariaDBもデフォルトでインストールされます...

Mysql テーブル、列、データベースの追加、削除、変更、クエリの問題の概要

以下は私がまとめた基本的なSQL知識です。主に参考資料として、また将来の他の初心者の助けとして、私自...

yumコマンドの使い方

1. yumの紹介Yum (フルネームは Yellow dogUpdater、Modified) は...

透明な入力ボックスにアイコンを追加する HTML コード

最近、弁護士推薦のウェブサイトを作成していたのですが、検索ボックスに問題がありました。検索ボックス内...

JavaScript配列についてさらに詳しく知るのに役立つ記事

目次1. 配列の役割: 2. 配列の定義: 1. コンストラクタを通じて配列を作成する2. リテラル...

MySQL は低速クエリを可能にします (EXPLAIN SQL ステートメントの使用の概要)

今日、データベース操作はますますアプリケーション全体のパフォーマンスのボトルネックになりつつあり、こ...

Linux がますます人気になっている 10 の理由

Linux はますます多くのユーザーに愛されてきました。なぜ Linux はこれほど急速に発展し、い...

Dockerコンテナ間の通信と外部ネットワーク通信の操作

コンテナ間の通信1. コンテナのネットワーク共有このモードの Docker コンテナはネットワーク ...

データベースの削除から逃走までの MySQL の徹底分析_上級編 (I) - データ整合性

1. データ整合性の概要1. データ整合性の概要データの冗長性とは、データベース内に重複したデータが...

MySQL フルテキスト検索の中国語ソリューションとサンプルコード

MySQL 全文検索中国語ソリューション最近、会社のプロジェクトで、データベースで中国語を検索する機...

この記事では、jsのデータ型とデータ構造の世界を紹介します。

目次1. 動的型付けとは何ですか? 2. データ型2.1 プリミティブ型 (6 つのプリミティブ型、...

docker compose を使用してハーバープライベートウェアハウスをインストールする詳細なチュートリアル

概要港とは何ですか?英語の単語の意味は「港」です。 Harborはコンテナ(貨物)を保管するために使...

W3C チュートリアル (7): W3C XSL アクティビティ

スタイル シートは、ドキュメントの表示方法、発音方法、または入力方法を記述します。XSL 言語は、X...

ハイパーリンクの表示と開き方

<br />関連記事: ハイパーリンクを表示して開く方法症状<br />ユー...

Fabric.js は DIY ポストカード機能を実装します

この記事では、DIYポストカード機能を実現するためのfabricjsの具体的なコードを参考までに共有...