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

推薦する

React NativeとiOSの相互作用の詳細な説明

目次前提条件RNはiOSに価値を渡す方法1: ネイティブに値を通常通り渡す方法2: コールバック関数...

Win10にCentOS7仮想マシンをインストールする

1. VMware Workstation 64バージョンをダウンロードするhttps://www....

CSS3 FlexBox の伸縮自在なレイアウトを 10 分で理解する

基本的な紹介特徴Flexbox は、よりシンプルで効率的なレイアウト方法を提供する CSS 表示タイ...

Linux に MySQL 8.0.x をインストールするための完全な手順

マイグレーションMySQL 入門MySQL はもともとオープンソースのリレーショナル データベース管...

レスポンシブWebデザイン学習(3) - モバイルデバイスでのWebページのパフォーマンスを向上させる方法

序文モバイル デバイスでは、帯域幅とプロセッサ速度の制限により、Web ページのパフォーマンスに対す...

CSS の両端揃えを実現する div+css レイアウトの 4 つの方法の概要

2 端揃えを実現する div+css レイアウトは、Web ページの組版でよく使用されます。この記事...

Dell R720 サーバーに Windows Server 2008 R2 をインストールする方法

注: この記事のすべての写真はインターネットから収集されたものであるため、DELL R720 サーバ...

njs モジュールを使用して nginx 構成に js スクリプトを導入する

目次序文1. NJSモジュールをインストールする方法1: NJSモジュールを動的にロードする方法2:...

JavaScript のガベージコレクションの仕組みの詳細な説明

目次ガベージコレクション (GC) はなぜ必要なのでしょうか?ガベージコレクションとは廃棄物の発生ガ...

ページのレンダリング時間を短縮してページの実行速度を速めます

ブラウザでのページのレンダリング時間をできるだけ短縮するにはどうすればよいでしょうか? この記事は、...

Linux parted ディスク パーティション実装手順の分析

fdisk と比較すると、parted はあまり使用されず、主に 2T を超えるパーティションに使用...

MySQL 5.7 以降のバージョンのダウンロードとインストールのグラフィック チュートリアル

1. ダウンロード1. MySQL公式サイトのダウンロードアドレス: https://downloa...

JSはカード配布アニメーションを実現します

この記事の例では、カード配布アニメーションを実装するためのJSの具体的なコードを参考までに共有してい...

ElementUI el-select の過剰なデータに対する解決策についての簡単な説明

目次1. シナリオの説明2. 解決策オプションが多すぎる el-select コンポーネントの解決策...

ユーザーエクスペリエンスの概要

最近では、ソフトウェアやウェブサイトのいずれの作業であっても、設計時に「ユーザー エクスペリエンス」...