ダッシュボードを実装するためのjQueryプラグイン

ダッシュボードを実装するためのjQueryプラグイン

jQueryプラグインは、参考のためにダッシュボードを実装します。具体的な内容は次のとおりです。

一般的なタイプのメーターであるシンプルなダッシュボードを作成しました。実装は難しくありませんが、位置の計算が少し必要です。

成果を達成する

コードセクション

*{
 マージン: 0;
 パディング: 0;
}
.rel{
 ディスプレイ: フレックス;
 コンテンツを中央揃えにする。
 アイテムを中央揃えにします。
 位置: 相対的;
}
.bp{
 境界線の半径:50%;
 境界線: 1px 実線のライトグレー;
 位置:相対;
 ディスプレイ: フレックス;
 コンテンツの中央揃え: 中央;
 アイテムの位置を中央揃えにします。
 変換: 回転(-45度);
}
.kd{
 位置:絶対;
 幅: 100%;
 フォントサイズ: 12px;
}
。ポイント{
 背景色:ライトグレー;
 高さ: 100px;
 幅: 20px;
 境界線の半径:100%;
 変換: 回転(90度);
 変換の原点:10px 0px;
 zインデックス: 9;
 位置: 絶対;
 遷移: すべて 0.5 秒;
}
.kb{
 位置: 絶対;
 下: 20px;
 フォントサイズ: 24px;
 色: グレー;
 遷移: すべて 0.5 秒;
}
<!DOCTYPE html>
<html>
 <ヘッド>
  <メタ文字セット="utf-8">
  <title>ダッシュボードを作成する</title>
  <script src="js/jquery-3.4.1.min.js"></script>
  <script src="js/zgybp.js"></script>
  <link href="css/zgybp.css" rel="スタイルシート" type="text/css" />
  <スタイル>
   #div{
    境界線: 1px 実線のライトグレー;
    幅: 90%;
    高さ: 400px;
    マージン: 20px 自動;
   }
  </スタイル>
 </head>
 <本文>
  <div id="div"></div>
 </本文>
</html>
<スクリプト>
 var temp = zgybp("div");
 setInterval(関数(){
  var f = Math.floor(Math.random()*101);
  temp.load(f);
 },700)
</スクリプト>
var zgybp = 関数(id){
 var $id = $("#"+id);
 $id.addClass("rel");
 var a = $id.width()>$id.height()?$id.height():$id.width();
 $bp = $("<div class='bp'></div>");
 $bp.appendTo($id);
 $bp.css({
  "幅":a,
  「高さ」:a
 })
 //スケールを描きます。3/4 270/100=2.7 のみを描きます。各スケールは 2.7 です。
 (var i =100;i>=0;i--){
  $kd = $("<div class='kd'><span class='txt'>-</span></div>");
  if(i%5==0){
   $kd.find('.txt').text(i)
  }
  $kd.appendTo($bp);
  $kd.css("変換","回転("+(i*2.7)+"度)");
 }
 $point = $("<div class='point'></div>")
 $ポイントを追加します($bp)
 $ポイント.css({
  "左":a/2,
  「トップ」:a/2
 })
 $kb = $("<div class='kb'>0</div>");
 $kb.appendTo($id)
 //次にダイヤルを 1/8 の角度に回すと、ほぼそこに到達します。 return{
  $id:$id,
  $bp:$bp,
  $ポイント:$ポイント、
  $kb:$kb、
  ロード:関数(f){
   var that = this;
   f = f<0?0:f>100?100:f;
   var temp = parseInt(f)*2.7;
   .$point.css({
    "transform":"rotate("+(90+temp)+"deg)"
   })
   that.draw(f);
  },
  描画:関数(f){
   var that =これ;
   それ.$kb.text(f);
  }
 }
}

実装のアイデア

  • さて、車のメーターを見たときに、このダッシュボードを実装することを思いつきました。
  • これは 3 つのステップに分かれています。まず、ダイヤルが描画されます。もちろん、3/4 だけが描画されます。次に、ポインターが描画され、正しく配置されます。最後に、入力パラメータに従って、ポインターが対応する位置に回転されます。
  • 最も簡単な方法を選んで実装しました。たとえば、文字盤に文字を描きたいのですが、文字が混み合っているため、真ん中に5を描かなければなりません。次に、ポインターについては、変形したdivを直接描画します。ここでは、親コンテナーのフレックスを使用して中央に配置します。そのため、説明が難しい部分があり、それは、ポインターを中心点から下または中心点から外れた他の位置に移動するということです。ポインターを正しいスケールに揃えたい場合は、偏向距離を計算するときに追加の変換ステップがあります。ここに関数があったと覚えていますが、覚えていないので、美しさのためにポインターを下に移動しませんでした。
  • ここで、前に使用した transform-origin プロパティにまだ注目しています。このプロパティは非常に重要です。このようなポインターを描画するのに非常に便利だと思います。
  • transform-origin: x軸 y軸 z軸;

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

以下もご興味があるかもしれません:
  • D3.js を使用してシンプルで実用的な動的ダッシュボードを実装する例
  • js キャンバスはモバイル端末に適したパーセンテージダッシュボードを実装します
  • js キャンバスが Alipay Sesame Credit ダッシュボードを模倣
  • ECharts ダッシュボードのサンプル コード (ソース コードのダウンロード付き)

<<:  UbuntuでOpenCVをコンパイルしてインストールする方法

>>:  MySQL 5.7.17 圧縮パッケージのインストールと設定方法のグラフィックチュートリアル

推薦する

純粋な CSS3 で美しい入力ボックスアニメーションスタイルライブラリを実現 (テキスト入力愛)

純粋な CSS3 で実装された美しい入力ボックス アニメーション スタイル ライブラリを共有します ...

Linux で特定のプログラムを見つけるための whereis の例の詳細な説明

Linuxは特定のプログラムを見つけますwhereis コマンドは主にプログラム ファイルを検索し、...

複合主キーと複数列インデックスに遭遇した場合の MySQL 行ロックの詳細な説明

背景今日、他のプロジェクト チームと協力してシス​​テムのストレス テストを実施しているときに、プロ...

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

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

mysql はインデックスを無効にしますか?

mysql の IN はインデックスを無効にしますか?しませんよ! 結果をご覧ください: mysq...

MySQL 数十億のデータのインポート、エクスポート、移行に関するメモ

最近はMySQLのメモをたくさん取っていますが、それは主に会社のOracleが比較的安定していてメン...

キープアライブキャッシュをクリアする方法の詳細なグラフィック説明

目次オープニングシーンv-for を使用した直接レンダリングカスタムコンポーネントで直接レンダリング...

HTML で div+CSS を使用してシンプルな矢印アイコンを実装するコード

ウェブデザインでは、ウェブページを美しく見せるために矢印を装飾としてよく使用します。現在、多くのウェ...

uniappは録音アップロード機能を実現

目次uni-app の紹介HTML部分js部分インスタンスを作成する録音を開始録音終了録音を再生再生...

Vue ユニットテストに関する予備調査

目次序文なぜユニットテストを導入するのですか?ユニットテストの概要テスト開発パターン1. テスト駆動...

Dockerはredis 5.0.7をインストールし、外部構成とデータの問題をマウントします

Redis は、ANSI C で記述されたオープンソースの NoSQL データベースであり、ネットワ...

シンプルな時計を実装するJavaScript

この記事では、JavaScriptでシンプルな時計を実装するための具体的なコードを参考までに紹介しま...

Mysql 5.7.19 無料インストール バージョンで遭遇した落とし穴 (コレクション)

1. 公式ウェブサイトから 64 ビットの zip ファイルをダウンロードします。 2. インスト...

nginx を介して方向プロキシを実装するプロセスの図

この記事は主に、nginx を介して方向プロキシを実装するプロセスを紹介します。この記事のサンプル ...

MySQL Community Server 5.6.39 のインストール方法

この記事では、MySQLのダウンロードとインストールの詳細なチュートリアルを記載しています。具体的な...