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ボリュームのファイルマッピング方法

推薦する

JavaScript で charAt() を使用して、最も頻繁に出現する文字とその出現回数をカウントする方法を教えます。

前回は、JavaScript の charAt() メソッドの使い方を紹介しました。今日は、最も多く...

Vueはページを更新するために3つの方法を使用する

プロジェクトを作成しているときに、ユーザーがアクションを実行し、特定の状態を変更し、ページを更新して...

MySQL 8.0.21 の最新バージョンのダウンロード、インストール、設定に関する詳細なチュートリアル

1. ダウンロード1. インストールパッケージをダウンロードするMySQL ダウンロード パス: h...

JavaScript で虫眼鏡の特殊効果を実現

達成される効果:マウスを小さな画像の上に置くと、小さなブロックが小さな画像の上に表示され、この小さな...

JavaScript のプライベート クラス フィールドと TypeScript のプライベート修飾子の詳細な説明

目次JavaScript のプライベート クラス フィールドとプライバシーの必要性JavaScrip...

win10 64 ビット システムに複数の JDK バージョンをインストールする際の切り替え問題と解決策の概要

コンピューターにmyeclipse2017とidea2017がインストールされているため、ideaが...

nginx 設定の場所の概要の場所の通常の書き込みと書き換えルールの書き込み

1. 場所の正規表現例を見てみましょう: 場所 = / { # 完全一致 / 、ホスト名の後に文字列...

Vueコンポーネントの再利用と拡張の詳細な説明

目次概要延長は必要ですか?スロットJavaScript ユーティリティ関数拡張コンポーネントの複数の...

ポートマッピング後に Docker コンテナが突然接続に失敗する問題のトラブルシューティング プロセス

1. 背景通常、外部サービスを提供する必要がある Docker コンテナの場合、起動時に -p コマ...

MySQL 5.7.18 のインストールと設定方法のグラフィックチュートリアル (CentOS7)

LinuxにMySQL 5.7.18をインストールする方法1. MySQLをダウンロードします。公...

HTML フォーム コントロールの無効な属性の読み取り専用と無効の概要

HTML でフォームの送信を無効にする方法は 2 つあります。 1. コントロールタグにreadon...

MySQLのマスタースレーブレプリケーションと読み取り書き込み分離を理解するための記事

目次導入1. MySQL マスタースレーブレプリケーション1. MySQLレプリケーションタイプ2....

Windows 10 で MySQL の解凍バージョンをインストールする方法の詳細なグラフィック チュートリアル

MySQL のインストールは、インストール バージョンと解凍バージョンに分かれています。インストール...

Linux サーバーが処理できる接続数をご存知ですか?

序文まず、TCP 接続を識別する方法を見てみましょう。システムは、(src_ip、src_port、...

JavaScript フォーム検証の例

HTML フォームは、名前、電子メール アドレス、場所、年齢などのユーザー情報を収集するためによく使...