0

は、私は両方の内側、外側、文書、ウィンドウや他のオブジェクトを使用してJavaScriptでブラウザなどが...イオン/角度/コルドバスタックのdp(pxではなく)の画面サイズを見つける方法はありますか?

問題があり、返された幅と絶頂がDPでPXに含まれていないピクセル単位で寸法を見つける方法を知っています。

画面が小さすぎて大きすぎてフィットしない場合は、いくつかの要素を隠したいとします。そして、すべての要素が水平方向と垂直方向(スクロールなし)の両方に適合するまで、特定の順序で要素を削除するようにしたい(いくつかはより有用で、他は追加情報用です)。

したがって、ピクセルの残りのオブジェクトサイズがwindow.innerSizeより小さくなるまで、ウィンドウからオブジェクトを削除するには、画面サイズとng-ifを取得します。ピクセルがピクセルのデスクトップでうまく動作します。

ただし、ここで問題が発生します。モバイル上では、しばしば実スクリーンピクセルと表示ピクセルの比率があります。例えば。ブロックが300pxでCSSの高さ(高さ:300px!重要)ではなく、実際のデバイスの高さが700ピクセル(開発者モードで底部をクリックして測定)です。私はいくつかが画面上部にstausバーのようなアプリの外の画面上の余分なピクセルに起因することを認識しますが、休憩は画面のpx比にdpにあります。

ウィンドウのdpディメンションを見つけるという元の質問に対する解決策がない場合、この問題にどのようにアプローチしますか?

答えて

3

は、それを発見しました。

それはちょうどうまく再生するようになります。 window.innerHeightを使用して、ウィンドウ内のすべての実際の高さを取得します(あなたのアプリにオーバーレイするキーボードで動作します)。 各要素の画面上の高さは、his_css_height * window.devicePixelRatioです。

私が望むものに正確に変換します。

ここに自分の質問に答えるのは申し訳ありませんが、私はほぼ3時間かけて答えを探していました。ここに投稿して検索を続けることにしました。ちょうどこれを知って、うまくいけばそれは他の誰かを助ける:)

0

あなたはこの試みることができる:あなたが window.devicePixelRatioあなたのために利用 を持つコルドバを使用しているとき

Display display = getWindowManager().getDefaultDisplay(); 
DisplayMetrics outMetrics = new DisplayMetrics(); 
display.getMetrics(outMetrics); 

float density = getResources().getDisplayMetrics().density; 
float dpHeight = outMetrics.heightPixels/density; 
float dpWidth = outMetrics.widthPixels/density; 
+0

それはすでに知られている、それは複数のスレッドで発見:)問題は、Javaコードです。そして、3つの異なるプラットフォーム(おそらく後で)のアプリケーションが作られています。私はJavaでないJavaScriptで書かれたソリューションを好むので、すべてのプラットフォームで使用できます。 – DanteTheSmith

関連する問題