説明するデータと組み合わせたチャートを使用すると、直感的な視覚効果を作成できます。大画面表示は、企業のデータ表示の一般的なシナリオになっています。大画面への適応をどのように実現するかは、解決しなければならない問題です。以下は、CSSのtransform属性とデザインパーセンテージを使用した解決策の1つです。不備があれば、ご指摘ください。 成し遂げる1. 大画面表示用の背景として、幅 = 100vw、高さ = 100% のコンテナ コンポーネントを準備します。 <div class="スクリーンアダプタ"> </div> .スクリーンアダプタ{ 幅:100vw; 最小高さ: 100%; 最大高さ: 100vh; オーバーフロー: 非表示; 背景: #0c1a3c; } 2. デザイナーが提供する設計図に従って、各領域の割合を計算できます。たとえば、合計サイズが w*h で、アイコン 1 つの幅と高さが w1 * h1 の場合、従来の画像カットを実現できます。このとき、1 → 2 から次のようになります。 <div class="スクリーンアダプタ"> <div class="content-wrap" :style="style"> <スロット></スロット> </div> </div> 小道具: { w: { // 設計図サイズ幅 type: Number, デフォルト: 1600 }, h: { // 設計図サイズ高さ type: Number, デフォルト: 900 } }, データ () { 戻る { スタイル: { 幅: this.w + 'px', 高さ: this.h + 'px', transform: 'scale(1) translate(-50%, -50%)' // デフォルトではスケーリングなし、垂直および水平の中央揃え} } } .content-wrap { 変換の原点: 0 0; 位置: 絶対; 上位: 50%; 左: 50%; } 3. 2 番目のステップに基づいて、大画面の具体的なサイズに応じてスケーリング比率を計算し、スケーリング比率を設定する必要があります。サイズ変更イベントをバインドするときには、揺れを防ぐことを忘れないようにし、ページが破棄されたときにリスニングイベントを削除することを忘れないでください。 マウントされた(){ this.setScale() this.onresize = this.debounce(() => this.setScale(), 100) window.addEventListener('resize', this.onresize) }, 破棄前() { window.removeEventListener('resize', this.onresize) }, メソッド: { // デバウンス (fn, t) { 定数遅延 = t || 500 タイマーを鳴らす 関数を返す(){ const args = 引数 if (タイマー) { タイムアウトをクリア(タイマー) } const コンテキスト = this タイマー = setTimeout(() => { タイマー = null fn.apply(コンテキスト、引数) }、 遅れ) } }, // スケーリング比率を取得する getScale () { 定数 w = window.innerWidth / this.w 定数 h = window.innerHeight / this.h w < h ? w : h を返す }, // スケーリング比率を設定する setScale () { this.style.transform = `scale(${this.getScale()}) translate(-50%, -50%)` } } 4. この時点で、全体的な構造が完成しました。アイコン コンポーネントの各部分の復元された設計図を前のスロットに配置するだけです。アイコン コンポーネントの各部分のサイズは、設計によって提供されるパーセンテージに基づいて決定できます。すべてのコードは、おおよそ次のようになります。 // スクリーンアダプタ.vue <テンプレート> <div class="スクリーンアダプタ"> <div class="content-wrap" :style="style"> <スロット></スロット> </div> </div> </テンプレート> <スクリプト> エクスポートデフォルト{ 小道具: { w: { タイプ: 数値、 デフォルト: 1600 }, 時間: { タイプ: 数値、 デフォルト: 900 } }, データ () { 戻る { スタイル: { 幅: this.w + 'px', 高さ: this.h + 'px', 変換: 'スケール(1) 変換(-50%, -50%)' } } }, マウントされた(){ this.setScale() this.onresize = this.Debounce(() => this.setScale(), 100) window.addEventListener('resize', this.onresize) }, 破棄前() { window.removeEventListener('resize', this.onresize) }, メソッド: { デバウンス (fn, t) { 定数遅延 = t || 500 タイマーを鳴らす 関数を返す(){ const args = 引数 if (タイマー) { タイムアウトをクリア(タイマー) } const コンテキスト = this タイマー = setTimeout(() => { タイマー = null fn.apply(コンテキスト、引数) }、 遅れ) } }, スケールを取得する() { 定数 w = window.innerWidth / this.w 定数 h = window.innerHeight / this.h w < h ? w : h を返す }, スケールを設定する() { this.style.transform = `scale(${this.getScale()}) translate(-50%, -50%)` } } } </スクリプト> <スタイル> .スクリーンアダプタ{ 幅: 100%; 最小高さ: 100vh; 最大高さ: 100vh; オーバーフロー: 非表示; 背景: #0c1a3c; } .content-wrap { 変換の原点: 0 0; 位置: 絶対; 上位: 50%; 左: 50%; } </スタイル> プロジェクトのディレクトリ構造は次のとおりです。効果図は以下のとおりですフォントチャートはすべて比例して拡大縮小されていることがわかります 要約する大画面での Echats チャートの適応型実装に関するこの記事はこれで終わりです。大画面での適応型 Echats チャートの関連コンテンツの詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 |
参考までに、JavaScriptのオブジェクトとメソッドを使用して実装されたWebピンボールゲームを...
理由は分かりませんが、UIではハニカム効果(手を広げたような効果)のデザインが好まれます。 1. 六...
目次1. カウンターの実装2. 成果を達成する1. カウンターの実装ページにカウンターを実装するだけ...
序文ご存知のとおり、bash (Bourne-Gain Shell) は、ほとんどの Linux デ...
目次1. 背景2. テーブル作成ステートメントとデータ挿入テーブルを作成するデータの挿入3. ウィン...
目次vuex 永続性要約するvuex 永続性vuex: ブラウザを更新すると、vuexの状態は初期状...
具体的なコードは次のとおりです。 HTMLコードは次のとおりです <div class=&qu...
目次MySQL Shell import_table データのインポート1. import_tabl...
Linux環境変数の設定ソフトウェアのインストールをカスタマイズする場合、多くの場合、環境変数を設定...
インストールと設定Apacheの公式ウェブサイトには多くのミラーダウンロードアドレスが用意されており...
目次1. 値を入力し、そのデータ型を返す** 2. アレイ重複排除3. 文字列の重複排除4. ディー...
この記事では、フロントエンドページのスライド検証を実装するためのJavaScript + HTMLの...
この記事では、DIYポストカード機能を実現するためのfabricjsの具体的なコードを参考までに共有...
<br /> 第 1 部と第 2 部では、Web サイトのパフォーマンス、ページ コンテ...
時間が経つにつれて、多くの人が XHTML の使い方を知らないことに気づきました。普通の初心者だけで...