CSS3 とテーブルタグを使用して円軌道アニメーションを実装するためのサンプルコード

CSS3 とテーブルタグを使用して円軌道アニメーションを実装するためのサンプルコード

html: 実際には、テーブルタグに従っていくつかの実線の円 div を正六角形に配置し、div コンテナーに配置してから、CSS3 の円回転アニメーション効果を使用して、最も外側の div コンテナーを回転させます。もちろん、div コンテナーの外側の境界線を円弧に設定することを忘れないでください。

<div class="アニメーション_div">
        <テーブルクラス="テーブルクラス">
            <tr>
                <td></td>
                <td>
                    <div class="BMI" ng-click="compriseClicked('BMI')" ng-class="{isSelected:clickUrlKey=='BMI'}">
                        BMI
                    </div>
                </td>
                <td></td>
                <td>
                    <div class="color_blind" ng-click="compriseClicked('color_blind')" ng-class="{isSelected:clickUrlKey=='color_blind'}">
                        色覚異常と色弱
                    </div>
                </td>
                <td></td>
            </tr>
            <tr>
                <td>
                    <div class="space_div"></div>
                </td>
            </tr>
            <tr>
                <td>
                    <div class="HR" ng-click="compriseClicked('HR')" ng-class="{isSelected:clickUrlKey=='HR'}">
                        心拍
                    </div>
                </td>
                <td></td>
                <td>
                    <a href="#/app/custom_made/counselor/{{clickUrlKey}}" style="text-decoration: none;
                        色: 黒;">
                        <div class="start_test">
                            <strong>テストを開始する</strong>
                        </div>
                    </a>
                </td>
                <td></td>
                <td>
                    <div class="fat_content" ng-click="compriseClicked('fat_content')" ng-class="{isSelected:clickUrlKey=='fat_content'}">
                        脂肪含有量
                    </div>
                </td>
            </tr>
            <tr>
                <td>
                    <div class="space_div"></div>
                </td>
            </tr>
            <tr>
                <td></td>
                <td>
                    <div class="WHR" ng-click="compriseClicked('WHR')" ng-class="{isSelected:clickUrlKey=='WHR'}">
                        ウエストヒップ比
                    </div>
                </td>
                <td></td>
                <td>
                    <div class="safe_period" ng-click="compriseClicked('safe_period')" ng-class="{isSelected:clickUrlKey=='safe_period'}">
                        <strong>安全期間</strong>
                    </div>
                </td>
                <td></td>
            </tr>
        </テーブル>
    </div>
    
    <h3>クリック URL キー:{{クリック URL キー}}</h3>

CSS: 円形トラックには 6 つの実線円があるため、カスタマイズ用に異なるクラスが設定されています。そのため、実線円には重複したスタイルがいくつかありますが、最適化することができます。ここでは扱いません。

<スタイル>
      /*アニメーションを定義する*/
      
      @-webkit-keyframes ラウンドアニメーション {
          0%{
              -webkit-transform:rotate(0度);
              幅:260ピクセル;
              高さ:260px;
          }
          100%{
              -webkit-transform:rotate(360度);
              幅:260ピクセル;
              高さ:260px;
              左:0px;
              上:0px;
          }
      }
      
      /*フレームのスタイルを定義する*/
      /*アニメーションを呼び出してアニメーションパラメータを設定する*/
      
      .アニメーション_div {
          -webkit-transform-origin:center center; /*回転の中心点を定義します*/
          -webkit-animation:round_animation 15s 無限交互; /*無限交互はループアニメーションを意味します*/
          
          マージン: 60px 自動;
          幅:260ピクセル;
          高さ:260px;
          境界線: 1px 黒一色;
          境界線の半径: 130px;
          左:0px;
          上:0px;
      }
      
      .animation_div 強い {
          フォントサイズ: 12px;
      }
      
      .BMI {
          幅: 50px;
          高さ: 50px;
          背景色: オレンジ;
          境界線の半径: 100px;
          テキスト配置: 中央;
          
          /*テキストの垂直中央揃え*/
          垂直位置合わせ: 中央;
          行の高さ: 50px;
      }
      
      .色盲{
          幅: 50px;
          高さ: 50px;
          背景色: 緑;
          境界線の半径: 100px;
          テキスト配置: 中央;
          
          /*テキストの垂直中央揃え*/
          垂直位置合わせ: 中央;
          行の高さ: 50px;
      }
      
      .HR{
          左マージン: -15px;
          幅: 50px;
          高さ: 50px;
          背景色: 青;
          境界線の半径: 100px;
          テキスト配置: 中央;
          
          /*テキストの垂直中央揃え*/
          垂直位置合わせ: 中央;
          行の高さ: 50px;
      }
      
      .start_test {
          幅: 60ピクセル;
          高さ: 60px;
          背景色: 赤;
          境界線の半径: 100px;
          テキスト配置: 中央;
          
          /*テキストの垂直中央揃え*/
          垂直位置合わせ: 中央;
          行の高さ: 50px;
      }
      
      .fat_content {
          左マージン: 15px;
          幅: 50px;
          高さ: 50px;
          背景色: グレー;
          境界線の半径: 100px;
          テキスト配置: 中央;
          
          /*テキストの垂直中央揃え*/
          垂直位置合わせ: 中央;
          行の高さ: 50px;
      }
      
      .WHR {
          幅: 50px;
          高さ: 50px;
          背景色: 紫;
          境界線の半径: 100px;
          テキスト配置: 中央;
          
          /*テキストの垂直中央揃え*/
          垂直位置合わせ: 中央;
          行の高さ: 50px;
      }
      
      .安全期間{
          幅: 50px;
          高さ: 50px;
          背景色: 黄色;
          境界線の半径: 100px;
          テキスト配置: 中央;
          
          /*テキストの垂直中央揃え*/
          垂直位置合わせ: 中央;
          行の高さ: 50px;
      }
      
      .space_div {
          幅: 50px;
          高さ: 50px;
          背景色: クリア;
          境界線の半径: 100px;
      }
      
      .rightmenu_btn {
          高さ: 60px;
          フロート: なし;
      }
      
      .rightmenu_btn ボタン {
          上マージン: 50px;
          幅: 20px;
          高さ: 60px;
          境界線: 1px実線rgb(221, 221, 221);
          右境界線: 0px;
          フロート: 右;
      }
      
      .isSelected{
          境界線: 1px 実線の赤;
      }
  </スタイル>

JS: ここのコードはアニメーション効果とは関係がないので無視できます。これはクリック応答イベントです。

angular.module('starter.controllers', [])
    .controller('healthCtrl', 関数($scope, $location) {
        $scope.clickUrlKey = "BMI";
        $scope.compriseClicked = 関数(clickUrlKey) {
            $scope.clickUrlKey = クリックUrlKey;
        };
    })

効果図は以下のとおりです。

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

<<:  Vueのprovideとinjectの使い方と原則を分析する

>>:  Dockerボリュームのファイルマッピング方法

推薦する

MySQL の遅いクエリの最適化方法と最適化の原則

1. 日付のサイズを比較するには、XML に渡される日付形式は 'yyyy-MM-dd...

Ubuntuはポート22を開きます

シナリオssh 経由で Ubuntu サーバーに接続するには、xshell ツールを使用する必要があ...

html5 の新しいメソッドを使用して JavaScript で要素クラス名を操作する方法の詳細な説明

目次1. classList属性2. 実用化以前の JavaScript では、最初にクラス属性を取...

要素テーブルからヘッダーを削除する方法

show-header属性を使用したドキュメントのヒントshow-header <el-テーブ...

Dockerコンテナ同士を接続する3つの方法の詳しい説明

Docker コンテナ間の相互接続と通信には 3 つの方法があります。 Docker 内部ネットワー...

MySQLデータベースをアンインストールするための完全な手順

MySQLデータベースを完全にアンインストールするプロセスは次のとおりです。 1. MySQLサービ...

ウィンドウ環境で VScode を使用して仮想マシン MySQL に接続する方法

1. 仮想マシン側1. MySQLの設定ファイルを見つける:sudo vim /etc/mysql/...

Vue3はサイドナビゲーションテキストスケルトン効果コンポーネントをカプセル化します

Vue3プロジェクトのカプセル化サイドナビゲーションテキストスケルトン効果コンポーネント-グローバル...

インデックスを使用して数千万のデータを持つ MySQL のクエリ速度を最適化する

1. インデックスの役割一般的に言えば、インデックスは本の目次に相当します。条件に基づいてクエリを実...

MySQL 30軍事ルールの詳細な説明

1. 基本仕様(1)InnoDBストレージエンジンを使用する必要があります。解釈:トランザクション、...

Linuxオンラインソフトウェアgccをオンラインでインストールする方法

Linux オンラインインストール関連コマンド: yum install: すべてインストールyum...

win10にUbuntu18デュアルシステムをインストールするとmmx64.efiが見つからないという問題が発生する

Ubuntu 18のインストール中に、USBディスクからUbuntuのインストールを開始すると、mm...

HTMLデザインパターンの日々の勉強ノート

HTML デザインパターン学習ノート今週は主にHTMLデザインパターンを学びました。学習内容をまとめ...

Centos8 に nginx をインストールするための詳細なチュートリアル (画像とテキスト)

Nginx (「エンジン エックス」と発音) は、インターネット上の最大規模のサイトの負荷を処理す...

js のマクロタスクとマイクロタスクについての簡単な説明

目次1. JavaScriptについて2. JavaScript イベントループ3. マクロタスクと...