ホームページ ウェブフロントエンド jsチュートリアル ブラウザのズームステータスのJavaScript検出実装コード_JavaScriptスキル

ブラウザのズームステータスのJavaScript検出実装コード_JavaScriptスキル

May 16, 2016 pm 04:35 PM
ブラウザ

ここで説明するズームは、ブラウザのサイズのズームを指すのではなく、ブラウザの Web ページのコンテンツのズーム率を指します (ズームするには Ctrl キーと - キーを押します)。
このズームを検出するにはさまざまな方法があります。QQ Space ではフラッシュを使用してブラウザがズームしているかどうかを検出します。これはブラウザのズームを検出するための JavaScript メソッドです。
IE6 の場合は、IE6 ではテキストのみをズームできるため、無視してください。
まず、ブラウザーによって提供される標準の検出インターフェイスについて説明します。 window.devicePixelRatio は、デバイス上の物理ピクセルとデバイスに依存しないピクセルの比率であり、Web ページが拡大縮小されたかどうかを検出するために使用できます。通常の PC ブラウザでは、デフォルト値は 1 で、デフォルトではスケーリングはありません。現在、Firefox、chrome などが十分にサポートされています。
さて、今度は IE がこれをどのように処理するかについて説明します。 IE には、window.screen.deviceXDPI と window.screen.logicalXDPI という 2 つのプロパティが用意されています。deviceXDPI はデバイス上の物理ピクセルに対応し、logicalXDPI はデバイス上の独立したピクセルの割合に対応します。標準の検出インターフェイスは、IE 手法に基づいた改良にすぎないと推定されます。システムのデフォルトは 96dpi であるため、Windows XP 以降のシステムでは、これら 2 つのプロパティのデフォルト値は 96 です。
上記のどちらもサポートしていないブラウザの場合は、window.outerWidth プロパティと window.innerWidth プロパティを使用することもできます。 externalWidth はウィンドウ要素の実際の外側の幅を返し、innerWidth はウィンドウ要素の実際の内側の幅を返します。どちらの幅にもスクロール バーの幅が含まれます。
これらの属性により、基本的に PC ブラウザ上で一般的なブラウザを扱うことができます。実装コードは次のとおりです:

detectZoom 関数の戻り値が 100 の場合、それはデフォルトのズーム レベルであり、100 より大きい場合はズームインされ、100 より小さい場合はズーム アウトされます。

function detectZoom (){ 
  var ratio = 0,
    screen = window.screen,
    ua = navigator.userAgent.toLowerCase();

   if (window.devicePixelRatio !== undefined) {
      ratio = window.devicePixelRatio;
  }
  else if (~ua.indexOf('msie')) {  
    if (screen.deviceXDPI && screen.logicalXDPI) {
      ratio = screen.deviceXDPI / screen.logicalXDPI;
    }
  }
  else if (window.outerWidth !== undefined && window.innerWidth !== undefined) {
    ratio = window.outerWidth / window.innerWidth;
  }
  
   if (ratio){
    ratio = Math.round(ratio * 100);
  }
  
   return ratio;
};
ログイン後にコピー

元の記事、転載する場合は明記してください: フロントエンド開発

から転載
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

グラデーションの背景を持つカードとクーポンのレイアウトに対するギャップ効果を達成する方法は? グラデーションの背景を持つカードとクーポンのレイアウトに対するギャップ効果を達成する方法は? Apr 05, 2025 am 07:48 AM

カードクーポンレイアウトのギャップ効果を実現します。カードクーポンレイアウトを設計するとき、特に背景が勾配である場合、カードクーポンにギャップを追加する必要があることがよくあります...

Webページにローカルにインストールされている「Jingnan Mai Round Body」を正しく表示するにはどうすればよいですか? Webページにローカルにインストールされている「Jingnan Mai Round Body」を正しく表示するにはどうすればよいですか? Apr 05, 2025 pm 10:33 PM

最近、Webページにローカルにインストールされたフォントファイルを使用して、インターネットから無料のフォントをダウンロードし、システムに正常にインストールしました。今...

ネガティブマージンが場合によっては効果がないのはなぜですか?この問題を解決する方法は? ネガティブマージンが場合によっては効果がないのはなぜですか?この問題を解決する方法は? Apr 05, 2025 pm 10:18 PM

なぜマイナスマージンが場合によっては有効にならないのですか?プログラミング中、CSSの負のマージン(負...

CSSを介してサイズ変更シンボルをカスタマイズし、背景色で均一にする方法は? CSSを介してサイズ変更シンボルをカスタマイズし、背景色で均一にする方法は? Apr 05, 2025 pm 02:30 PM

CSSでサイズ変更シンボルをカスタマイズする方法は、背景色で統一されています。毎日の開発では、調整など、ユーザーインターフェイスの詳細をカスタマイズする必要がある状況に遭遇することがよくあります...

58.com作業ページでリアルタイムアプリケーションと視聴者のデータを取得する方法は? 58.com作業ページでリアルタイムアプリケーションと視聴者のデータを取得する方法は? Apr 05, 2025 am 08:06 AM

クロール中に58.com作業ページの動的データを取得するにはどうすればよいですか? Crawlerツールを使用して58.comの作業ページをrawったら、これに遭遇する可能性があります...

CSSとFlexBoxを使用して、さまざまな画面サイズで画像とテキストのレスポンシブレイアウトを実装する方法は? CSSとFlexBoxを使用して、さまざまな画面サイズで画像とテキストのレスポンシブレイアウトを実装する方法は? Apr 05, 2025 pm 06:06 PM

CSSを使用してレスポンシブレイアウトを実装して、Webデザインのさまざまな画面サイズの下でレイアウトの変更を実装する場合、CSS ...

node.jsでHTMLテキストを取得するためにリクエストライブラリを使用する場合、例外をエンコードする理由は何ですか?それを解決する方法は? node.jsでHTMLテキストを取得するためにリクエストライブラリを使用する場合、例外をエンコードする理由は何ですか?それを解決する方法は? Apr 05, 2025 am 07:03 AM

node.js環境でHTMLテキストコンテンツを取得するためにリクエストライブラリを使用する場合のコーディング例外の理由とソリューション。 node.jsを使用する開発プロセス中に、しばしば...

See all articles