jquery関数$(window).outerWidth(true);
を使用してアンドロイドデバイスの向き変更のウィンドウ幅を計算しようとしています。この計算では、iphone
とipad
の両方向の向きが正しく変更されますが、アンドロイドでは変更されません。私は最初に風景モードまたはポートレートモードでページをロードする場合、私は正しい幅を取得していますが、私はページを読み込んだ後に向きを変更すると私は横モードであったようにポートレートモードの幅を取得しています。何が起こっているのかを教えてください。どうすればこの問題を処理して、アンドロイドデバイスの向き変更に正しいウィンドウ幅を得ることができますか?アンドロイドデバイスの向き変更時の正しいウィンドウ幅をタブレットとモバイルの両方で取得する方法
答えて
JavaScriptのscreen
オブジェクトを使用するだけではどうですか。あなたが画面の大きさを得ることができる必要があります:
screen.height;
screen.width;
私はブラウザのサイズを確認する必要があるので、デスクトップを含むすべてのデバイスの一般として '$(window).outerWidth(true);'を使用しています。私は上記の方法を使用する場合、私は特にアンドロイドデバイスをチェックする必要があります。あなたの答えを確認しますが、なぜjquery関数が正しい結果を出していないのかを確認します。アンドロイドデバイスの場合はどうなりますか – user850234
これはAndroid 2.3で間違った値を返します。 –
これは私がアンドロイドを嫌う理由です。 – neaumusic
それぞれ、window.innerWidth
試してみてください、window.innerHeight
。アンドロイドはouterWidthとHeightについてのことではありません。
この記事はあなたに関連する可能性がある解決策を持っているようだ:
http://forum.jquery.com/topic/orientationchange-event-returns-wrong-values-on-android
私もこの問題で立ち往生し、すべてのplatforms.Below上で動作する最適なソリューションです見つけるましたorientationchangeイベントのコード。
function onOrientationChange(event)
{
setTimeout(function(){
'Enter you code here';
},200);
}
希望すると、他のほとんどの人にも役立ちます。乾杯。代わりにorientationchangeイベントを聴くの
ありがとう、これは動作します。しかし、エミュレータでは動作しません。 –
var isMobile = {
Android: function() {
return navigator.userAgent.match(/Android/i);
},
BlackBerry: function() {
return navigator.userAgent.match(/BlackBerry/i);
},
iOS: function() {
return navigator.userAgent.match(/iPhone|iPad|iPod/i);
},
Opera: function() {
return navigator.userAgent.match(/Opera Mini/i);
},
Windows: function() {
return navigator.userAgent.match(/IEMobile/i);
},
webOS: function() {
return navigator.userAgent.match(/webOS/i);
},
any: function() {
return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows());
}
};
var tell_if_mobile;
var mobile_tablet;
if (isMobile.any()) {
tell_if_mobile = true;
} else {
tell_if_mobile = false;
var windowWidth = window.screen.width < window.outerWidth ?
window.screen.width : window.outerWidth;
tell_if_mobile = windowWidth < 800;
mobile_tablet = windowWidth >= 500 ? "Tablet/Phablet Device" : "Desktop View (Mobile)";
}
var mobile_type;
mobile_type = isMobile.Android() ? "Android Device" :
isMobile.BlackBerry() ? "Blackberry Device" :
isMobile.iOS() ? "iOS Device" :
isMobile.Opera() ? "Opera Mobile/Mini" :
isMobile.Windows() ? "IEMobile" :
isMobile.webOS() ? "webOS device" :
tell_if_mobile == true ? mobile_tablet :
"Not a mobile device";
alert(mobile_type); //result
、あなたがイベントのサイズを変更するウィンドウを聞くことができ、それはwindow.innerHeight/outerHeightプロパティが更新されてしまっていることを確認します。
私の場合window.innerWidthはオリエンテーション変更の後に更新されません –
- 1. アンドロイドデバイスのMICに吹き込むときの振幅を取得する方法
- 2. アンドロイドデバイスのリンガーの振幅値を取得する方法
- 3. モバイルで全幅の背景を取得する方法は?
- 4. scrollToウィンドウの方向を変更する
- 5. UITableViewCell swiftでUIViewの正しい幅を取得する方法
- 6. Dicom Toolkit(DCMTK) - ウィンドウの中央と幅を取得する方法
- 7. スティッキーテーブルヘッダーがウィンドウのサイズ変更時に幅を変更しない
- 8. タブレットとモバイルでのロゴのサイズ変更に関する問題
- 9. jqueryモバイルのdateboxコンポーネントの幅と高さを変更する方法
- 10. タブレット方向の変更アプリがクラッシュする
- 11. ウィンドウを作成する前にウィンドウ枠の幅を取得する方法は?
- 12. CSSでXとYの両方の方向に変換する方法
- 13. ウィンドウ幅を使用してhrefを変更する方法
- 14. アンドロイドでモバイルの程度の現在の方向を取得
- 15. jQueryモバイルの移行の方向を変更する
- 16. DOMPDFページの向きが横向きと縦向きの両方
- 17. デバイスオリエンテーションの変更方法を確認する方法iPadからPortraitへ横向きと横向きに変更
- 18. 方向変更後の画面の高さを取得する方法は?
- 19. サイズ変更後のダイアログの高さと幅を取得する方法は?
- 20. タブレット用のランドスケープ/ポートレートの両方を許可する方法
- 21. 方向変更イベントを正しく処理する方法は?
- 22. 新しいCMDウィンドウでCMDとPingのIPV4変数を取得する方法
- 23. Viewの高さと幅を変更する正しい方法Android
- 24. 市場でデバイスとタブレットの両方のバージョンにapkを設定する方法
- 25. リスナーextjs 4のウィンドウの幅と高さを取得する方法は?
- 26. スライディングウィンドウで現在のウィンドウ時間を取得する方法は?
- 27. アンドロイドデバイスのプロセッサ速度とRAMを取得する方法
- 28. モバイルとタブレットの両方をサポートするアプリケーションを作成するにはどうすればよいですか?
- 29. 両方の向きのスタイルを設定する方法
- 30. 両方の場所の緯度と経度からある場所の方向を取得する方法は?
Androidに問題があり、番号が変更されるまでに数秒かかることがあります。私はあなたが使用しているプラットフォームに精通していませんが、C++では、向きを変えた後、数フレームにわたって繰り返しポーリングするという解決策です。 – bitwise