判断する方法
モバイルデバイスは、2つのオブジェクト、1つの属性、1つのイベントを提供します。
(1)window.orientationは、ウィンドウオブジェクトの以前の属性に属します。 3つの値があります:0はポートレート、90は左に反転し、ランドスケープモードにターン、-90は右に反転し、ランドスケープモードにターン、最後の180はデバイスが底部または垂直に反転するかどうかです。
(2)OrientationChangeは、PCで使用されるサイズ変更イベントと同様に、デバイスが回転するときにこのイベントをトリガーするイベントです。
これら2つを一緒に使用すると、デバイスの水平画面と垂直のステータスを簡単に取得できます。コードは次のとおりです。
(function(){var init = function(){var updateOrientation = function = function(){var orientation = window.orientation; switch(wortheration){case 90:case 90:case -90:orientation = 'landscape'; break: 'foratement =' portatory ';} // Document.ParentNode.setattribute(class '、addeventlistener);CSSでは、このように書くことができます。
/**パフォーマンスdivボーダーは青**/
もちろん、メディアクエリを使用することもできます(推奨):
@Media All and(Orientation:Portrait){Body Div {Border:1PX Solid Blue; }}@Media All and(Orientation:Landscape){Body Div {Border:1PX Solid Yellow; }}互換性
window.orientationまたはorientationchangeがデバイスに存在しない状況に対処する方法は? (通常、1つは存在せず、もう1つは存在しません。そうでなければ)
初期の開発では、Chromeのデバイスモデルモードがよく使用されますが、このプロパティは存在しません。この値を取得するにはどうすればよいですか?簡単な方法は、幅と高さの比較に基づいて判断することです。幅が高さよりも小さい場合、それは垂直スクリーンであり、幅と高さは水平画面です。
結果を得る方法を知っています。次のことは、デバイスの反転イベントを聴く方法です。 OrientationChangeは利用できないため、最も基本的なサイズ変更イベントを使用するか、タイマーを使用して検出します。コードを見てください:
(function(){var updateOrientation = function(){var orientation =(window.innerwidth> window.innerheight)? 'landscape': 'portrait'; document.body.parentnode.setattribute( 'class'、orteration);}; var initorientation(){updateorientation();イベントウィンドウを変更します。最後に、上記の2つの方法を組み合わせることは、完全な検出ソリューションです
(function(){ var supportOrientation = (typeof window.orientation === 'number' && typeof window.onorientationchange === 'object'); var init = function(){ var htmlNode = document.body.parentNode, orientation; var updateOrientation = function(){ if(supportOrientation){ orientation = window.orientation; switch(orientation){ case 90: case -90: 'landsation =' fored} window.addeventlistener(uprentation -arientation、false)要約します
OrientationChangeイベントを使用して、デバイスが回転するかどうかを監視し、window.orientationプロパティを使用して、さまざまな操作を実行するために、現在水平画面か垂直画面かを判断します。