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 の負荷分散と動的および静的分離の原理と構成

推薦する

DockerコンテナでPythonを実行するディープラーニング環境を構築する方法

タスク マネージャーで仮想化を確認し、有効になっている場合は仮想化を、無効になっている場合はコンピュ...

Navicat の MySQL へのリモート接続が遅い理由の詳細な説明

最終的な解決策は最後の写真にありますリモート データベース ( Linux システム) に接続したと...

Windows 8 での MySQL 5.6.15 のインストールと設定方法のグラフィック チュートリアル

MySQLは私がとても気に入っているデータベースです。今日はWindows 8システムでインストール...

MySQL の永続性とロールバックの原理を 1 つの記事で理解する

目次再実行ログディスクデータを直接更新するのではなく、最初にメモリデータを更新する必要があるのはなぜ...

データページング効果を実現する js オブジェクト

この記事の例では、データのページング効果を実現するためのjsオブジェクトの具体的なコードを参考までに...

Dockerを使用してAngularプロジェクトをデプロイする方法

Docker を使用して Angular プロジェクトをデプロイする方法は 2 つあります。1 つは...

docker windows10共有ディレクトリのマウント失敗の解決策

原因docker スクリプトを実行すると、コンテナを作成できないというエラーが発生します。以下のよう...

HTML&CSS&JS 互換性ツリー (IE、Firefox、Chrome)

Web デザインにおけるツリーとは何ですか?簡単に言うと、リンクをクリックするとサブディレクトリが展...

ブラウザのスクロールバーのスタイルを変更するための純粋な CSS の例

CSSを使用してブラウザのスクロールバーのスタイルを変更する ::-webkit-スクロールバー{ ...

MYSQLクエリデータの結果に自動的に番号を付ける方法

序文実際、クエリ中に結果に番号が付けられるこのような状況に遭遇したことは一度もありません。同僚が転職...

MySQLカバーインデックスの詳しい説明

コンセプトインデックスにクエリ要件を満たすすべてのデータが含まれている場合、それはカバーリング イン...

dockerでpdflatex環境を設定する方法

技術的背景Latex は文書作成、特に記事作成には欠かせないツールであり、必須のテキスト組版ツールで...

Linux SSHポートを転送する3つの方法

ssh は私が最も頻繁に使用する 2 つのコマンドライン ツールのうちの 1 つです (もう 1 つ...

リクエストを転送したり、静的リソースファイルにアクセスしたりする複数の場所への nginx の実装

この記事では主に、リクエストを転送したり、静的リソース ファイルにアクセスしたりする nginx の...

Linux で推奨される 9 つの優れたコード比較ツールの概要

コードを書くとき、2 つのファイル間の違い、または同じファイルの異なるバージョン間の違いを知る必要が...