41

Modernizrを使用して、ユーザーがデスクトップ、タブレット、またはモバイルデバイスでサイトを表示しているかどうかを検出したいと思います。

私が最初に考えたのは、明らかに、モバイルデバイスやより大きなデスクトップに十分な画面サイズを確認することです。画面サイズが小さなデスクトップ画面(1024 x 768)と同じになる可能性があるタブレットデバイスの場合、タッチイベントもテストします。

今回は、jQuery mobileが言うように、Aグレードのモバイル/タブレットデバイスに焦点を当てたいと思います。デスクトップ、タブレット、またはモバイルを検出し、テストの結果に応じてCSSクラスを追加することで、それぞれに合わせたUIを提供するだけで、特定のモバイルデバイス機能を利用するつもりはありません。

これで私が望むことを達成するのに十分だと思いますか、それとも他の機能をテストする必要があると思いますか?よろしくお願いします。

4

4 に答える 4

46

この質問は少し古いですが、グーグルで検索したときに、より良い答えを見つけることができませんでした。

現在、ほとんどのデスクトップはタッチ対応になっているため、それを検出することは重要ではありません。

それらを検出する最良の方法は、画面サイズによるものです。

Modernizrを使用すると、if (Modernizr.mq('only all and (max-width: 480px)')) { ...}

于 2013-05-10T12:26:01.590 に答える
43

Modernizrはタッチイベントをチェックできます

デバイスがタブレットか電話かデスクトップかをテストするために、私はおそらくユーザーエージェントの使用にもっと傾倒するでしょう。DetectMobileBrowsers.comのスクリプトを見てください

Modernizrは、ブラウザが特定の機能をサポートしているかどうかをテストするだけです。私の知る限り、browser_type == mobileそれらの線に沿ってテストしたり詰め込んだりするようには見えません...

最近の多くの最新のデスクトップPCにはタッチスクリーンが搭載されているため、タッチサポートを検出しても、それがモバイルデバイスまたはタブレットであるとは限りません。

于 2011-12-02T18:12:51.473 に答える
5

Modernizrには次の拡張機能を使用できます: https ://www.npmjs.org/package/mobile-detect

または(Modernizrなしで)Restive.JSを使用して、「。phone」または「.tablet」クラスを体に追加できます:http: //docs.restivejs.com

(ページの下で「formfactor」を探してください。)

于 2014-03-18T10:59:13.920 に答える
-1

「正しい」答えは時間とともに変化したと私は信じているので、これは古い質問に対するフォローアップの答えです。

  • 今日、多くのラップトップはタッチ対応になっています
  • 新しい携帯電話は、物理的な画面が大幅に小さいにもかかわらず、他の大部分のコンピューターモニターよりも解像度が高くなっています。

これを回避するために私が見つけた最善の方法は、画面のDPIをピクセル単位の画面サイズと組み合わせて乗算することにより、物理的な画面サイズを計算することです。

于 2018-09-12T14:28:26.660 に答える