目次
1. 一般的な適応ソリューション
2. CSS3 スケーリング ソリューション
3. カプセル化 スケーリング命令
ホームページ ウェブフロントエンド Vue.js 大画面要素の解像度適応を実装する Vue 命令の詳細な説明

大画面要素の解像度適応を実装する Vue 命令の詳細な説明

Oct 02, 2022 am 09:00 AM
vue

この記事では、vue に関する関連知識をお届けします。主に、一般的な適応スキームや CSS スケーリング スキームなど、大画面要素の解像度適応を実装するための Vue 命令の詳細な説明を紹介します。ぜひ一緒にご覧ください。皆さんのお役に立てれば幸いです。

大画面要素の解像度適応を実装する Vue 命令の詳細な説明

[関連する推奨事項: javascript ビデオ チュートリアルvue.js チュートリアル]

フロントエンドを使用するデータセンター (ミドルプラットフォーム) およびその他のコンセプトの継続的な開発、およびモノのインターネットデバイスの更新と普及により、データを集中表示するために 1 つまたは複数の大きなビジュアルスクリーンをシステムに追加することを希望する所有者 (プロジェクト) が増えています。上司もそれを「状況」と呼ぶことを好みます。

もちろん、プログラマはプロジェクトを完了する限り、「上司」が何を考えているかは一般に気にしません。しかし、次のような問題がよく発生します。大画面のテンプレートがあるが、ユーザーのブラウザの解像度が十分ではない、ブックマーク バーがあるテンプレートとないテンプレート、または全画面のテンプレートと小さなウィンドウだけのテンプレートがあります。このように、コードがさまざまな解像度のシナリオに適応するための要件が​​あります。

1. 一般的な適応ソリューション

通常使用する Web 側の適応ソリューションには主に次のものがあります:

  • vw/vh はパーセンテージで実装され、ウィンドウ サイズに応じて要素を自動的に調整できます。
  • fontSize を rem と組み合わせて、「単位幅」の統一を実現します。
  • さまざまな解像度範囲に応じてページ レイアウトを調整します
  • 最小幅の中央レイアウト

最新の画面適応ソリューションの原則は上記の方法に基づいていますが、これらの方法には大きな欠点もあります。ブラウザ テキストには最小幅があります。サイズ!

解像度 1080p 以上の通常の画面では、ほとんどの設計図面の比率と表示効果を完全に復元できます。ただし、特定のシステムにページ コンテンツが多すぎる場合、またはブラウザで使用されている解像度 (物理解像度ではない) が完全な表示要件を満たしていない場合、上記の方法を使用すると、 テキストのサイズが計算される可能性があります。ブラウザの最小フォント サイズ より小さい場合、テキスト幅が要素を超えるため、ページ スタイルが崩れる可能性があります。

中央レイアウトと最小幅は表示効果を確保できますが、大画面プロジェクトには適していません。

2. CSS3 スケーリング ソリューション

上記の解決策が満足できない場合、通常、誰もが別の解決策、CSS3 スケール スケーリングを使用します。

設計図のサイズ比率と実際のページ表示領域サイズを計算し、要素の拡大縮小率を動的に調整します。

個人的には、これが小さな解像度で表示コンテンツとスタイルを保持する最良の方法だと思います。

もちろん、この方法にはまだいくつかの欠点があります。

  • スケーリング後、端の表示がぼやける可能性があります。
  • 内部に Canvas 要素がある場合、ぼやけてしまう可能性があります。キャンバスの内側がぼやける原因になります。コンテンツのレンダリングに歪みが発生します。
  • Amap 1.x では、イベント座標オフセットが発生します (2.0 は修正されています)
  • ...

3. カプセル化 スケーリング命令

ここでは、Vue のカスタム命令の簡単なレビューを示します: カスタム命令を構成し、パラメーターをバインドすることにより、対応する処理ロジックが、component/ などの異なる時点で実行されます。要素のロード、更新、および破棄。

Vue のカスタム命令には、次のフック関数が含まれます。

  • bind: 命令バインディングの解析時に実行され、一度のみ実行されます。
  • inserted: 親を挿入します。ノードが作成されたときに実行されます。
  • update: コンポーネントが更新をトリガーしたときに実行されます。
  • componentUpdated: すべてのコンポーネントが更新された後に実行されます。
  • unbind: 要素がバインドされていない (破棄された) ときにのみ実行されます。 1 回実行
#ここでは、初期化中に要素のスケーリングを調整するためにブラウザのサイズ変更イベントをバインドするだけでよいため、コード ロジックを最適化しリソースを削減するために、挿入された設定のみが必要です。消費などの場合は、アンバインド段階でリサイズイベントのコールバック関数をキャンセルする必要もあります。

コードは次のとおりです。

// 缩放指令
import Vue from "vue";
function transformScale(el, options) {
  const { target = "width", origin = "top left" } = options;
  Vue.nextTick(() => {
    // 获取显示区域高宽
    const width = window.innerWidth;
    const height = window.innerHeight;
    el.style.transformOrigin = origin;
    if (target === "ratio") {
      const scaleX = width / CONF.width;
      const scaleY = height / CONF.height;
      el.style.transform = `scaleX(${scaleX}) scaleY(${scaleY})`;
    } else {
      let scaleProportion = 1;
      if (target === "width") {
        scaleProportion = width / CONF.width;
      }
      if (target === "height") {
        scaleProportion = height / CONF.height;
      }
      el.style.transform = `scale(${scaleProportion})`;
    }
  });
}
function inserted(el, binding) {
  const options = binding.options || { passive: true };
  const callback = () => transformScale(el, binding.value);
  window.addEventListener("resize", callback);
  callback();
  el._onResize = {
    callback,
    options
  };
}
function unbind(el) {
  if (!el._onResize) {
    return;
  }
  const { callback } = el._onResize;
  window.removeEventListener("resize", callback);
  delete el._onResize;
}
export const Scale = {
  inserted,
  unbind
};
export default Scale;
ログイン後にコピー

説明:

    命令は、比率計算方法とスケーリング位置を指定するオブジェクト パラメーターを受け取ります
  • デフォルトのページ サイズを指定するように CONF オブジェクトをグローバルに構成します
  • ページがロードされ、dom 要素を取得できることを確認するには、Vue.nextTick を呼び出す必要があります
  • リッスン イベントを破棄する必要があります
コード全体は実際には非常に単純で、サイズ変更イベントをリッスンして要素のズーム率を調整するというものです。

しかし、ここでは、より多くの状況に適応するために少しの構成も作成しました:

  • ターゲット設定を受信して​​比率の計算方法を確認します。幅または高さを統一スケーリング基準として使用することも、個別に計算することもできます。
  • 変換の元の設定を受信して​​要素を確認しますさまざまな位置で オフセットのスケーリングを避けるために、さまざまな位置にズームできます。
  • バインドされた要素のサイズは関係せず、デフォルトのサイズのみが必要です。コードを記述するときに、それに応じて要素のサイズを直接構成できます。設計図へ

もちろんこのコマンドも完璧とは言えず、手ぶれ補正がない、拡大縮小してもCSSで指定したサイズが変わらない、スクロールバーなど抜け道はまだたくさんあります。などが表示される傾向があります;

そして、以前の理由により、このプロジェクトには多くのチャートやマップも含まれており、表示上の問題が発生することが多いため、後でいくつかの新しい指示が追加されますが、解像度の適応は実際の状況に基づいて決定する必要があります。

【関連する推奨事項: JavaScript ビデオ チュートリアル vue.js チュートリアル ]

以上が大画面要素の解像度適応を実装する Vue 命令の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

VueでBootstrapの使用方法 VueでBootstrapの使用方法 Apr 07, 2025 pm 11:33 PM

vue.jsでBootstrapを使用すると、5つのステップに分かれています。ブートストラップをインストールします。 main.jsにブートストラップをインポートしますブートストラップコンポーネントをテンプレートで直接使用します。オプション:カスタムスタイル。オプション:プラグインを使用します。

VUEのボタンに関数を追加する方法 VUEのボタンに関数を追加する方法 Apr 08, 2025 am 08:51 AM

HTMLテンプレートのボタンをメソッドにバインドすることにより、VUEボタンに関数を追加できます。 VUEインスタンスでメソッドを定義し、関数ロジックを書き込みます。

VueでWatchの使用方法 VueでWatchの使用方法 Apr 07, 2025 pm 11:36 PM

Vue.jsの監視オプションにより、開発者は特定のデータの変更をリッスンできます。データが変更されたら、Watchはコールバック関数をトリガーして更新ビューまたはその他のタスクを実行します。その構成オプションには、すぐにコールバックを実行するかどうかを指定する即時と、オブジェクトまたは配列の変更を再帰的に聴くかどうかを指定するDEEPが含まれます。

Vueによる前のページに戻る方法 Vueによる前のページに戻る方法 Apr 07, 2025 pm 11:30 PM

vue.jsには、前のページに戻る4つの方法があります。$ router.go(-1)$ router.back()outes< router-link to ="/" Component Window.history.back()、およびメソッド選択はシーンに依存します。

Vue Multi-Page開発とはどういう意味ですか? Vue Multi-Page開発とはどういう意味ですか? Apr 07, 2025 pm 11:57 PM

VUEマルチページ開発は、VUE.JSフレームワークを使用してアプリケーションを構築する方法です。アプリケーションは別々のページに分割されます。コードメンテナンス:アプリケーションを複数のページに分割すると、コードの管理とメンテナンスが容易になります。モジュール性:各ページは、簡単に再利用および交換するための別のモジュールとして使用できます。簡単なルーティング:ページ間のナビゲーションは、単純なルーティング構成を介して管理できます。 SEOの最適化:各ページには独自のURLがあり、SEOに役立ちます。

React vs. Vue:Netflixはどのフレームワークを使用していますか? React vs. Vue:Netflixはどのフレームワークを使用していますか? Apr 14, 2025 am 12:19 AM

netflixusesaCustomframeworkは、「ギボン」ビルトンリアクト、notreactorvuedirectly.1)チームエクスペリエンス:seice basedonfamperivity.2)projectomplerprojects:vueforsplerprojects、racefforcomplexones.3)customeforsneeds:reactofforsmorefloficailie.

vue.jsでJSファイルを参照する方法 vue.jsでJSファイルを参照する方法 Apr 07, 2025 pm 11:27 PM

vue.jsでJSファイルを参照するには3つの方法があります。タグ;; mounted()ライフサイクルフックを使用した動的インポート。 Vuex State Management Libraryを介してインポートします。

VUEトラバーサルの使用方法 VUEトラバーサルの使用方法 Apr 07, 2025 pm 11:48 PM

Vue.jsには配列とオブジェクトを通過するには3つの一般的な方法があります。V-Forディレクティブは、各要素をトラバースしてテンプレートをレンダリングするために使用されます。 V-BindディレクティブをV-Forで使用して、各要素の属性値を動的に設定できます。 .mapメソッドは、配列要素を新しい配列に変換できます。

See all articles