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

推薦する

パーティショニングを使用して数十億のデータに対する MySQL データ処理を最適化する方法

MySQL が数千万のデータをクエリする場合、ほとんどのクエリ最適化の問題はインデックスを通じて解決...

xHTML タグと HTML タグの違いは何ですか?

すべてのタグは小文字でなければなりませんXHTML では、すべてのタグは小文字でなければなりません。...

Nginx で Http、Https、WS、WSS を設定する方法

前面に書かれた今日のインターネット分野では、Nginx は最も広く使用されているプロキシ サーバーの...

Linux は、ディレクトリが存在するかどうかを判断するために if を使用します。

Linux で if を使用してディレクトリが存在するかどうかを判断する方法方法は次のとおりです。...

HTML の ReadOnly と Enabled の違い

ReadOnly 属性を持つ TextBox は、クライアント上で次のマークアップとして表示されます...

WeChatアプレットにおけるデータ保存実装方法

目次グローバル変数 globalDataページプライベート変数データストレージ非同期ストレージ(デバ...

WeChatアプレットコンポーネント開発:視覚的な映画座席選択機能

目次1. はじめに1. コンポーネントデータ2. コンポーネントページのレイアウト1. ロゴエリアの...

VueでEchartsチャートの幅と高さの適応を実現する実践

目次1. インストールとインポート2. 手ぶれ補正機能を定義する3. チャートコードを描くinit ...

CSS 読み込み効果の実装 パックマン

えーっと、名前はただの推測です 2333序文これは練習用の CSS デモです。何か間違っている点があ...

IE6、IE7、IE8 で CSS3 の丸い角と影のスタイルをサポートする

CSS3 の角丸や影の効果を使ったページを作りたいのですが、IE ブラウザでは対応していません。こ...

Unicode 署名 BOM の詳細な説明

Unicode 署名 BOM - BOM とは何ですか? BOM は Byte Order Mark...

CSS3 で作成したホバーズーム効果

結果:実装コード: html <link href='https://fonts.go...

タイムスタンプの差を計算するSQLメソッド

タイムスタンプの差を計算するSQLメソッド概要場合によっては、特定のレコードを時間で検索する必要があ...

Flutterを使用して移動可能なスタックウィジェット機能を作成する

この投稿では、キャンバスとドラッグ可能なノード インターフェースを使用するデスクトップおよび Web...

CentOS8 Linux 8.0.1905 のインストール手順(図解)

現在、CentOS の最新バージョンは CentOS 8 です。次に、CentOS Linux 8....