2011-11-11 10 views
3

モバイルアプリケーションのページの向きが横から縦に変更されたり、逆の場合にCSSのファイルを変更する最適な方法は何ですか?私はAndroidとiPhoneの両方をサポートする必要があります。それはメディアのクエリが他のアイデア、最もクリーンな方法ではないようですか?モバイルオリエンテーションに基づいてCSSを変更する

+0

は、イベントのサイズを変更するウィンドウに結合するいずれかのオプションがありません、そしてXが大きければ、それは風景であるY参照してください?そしてYは大きくなり、Xは肖像画を手に入れましたか? 1 varをboolean、isLandscapeとして保存し、変更されている場合はスタイルシートを編集しますか? – Niels

+1

CSSのメディアクエリがクリーンな解決策ではないと思うのはなぜですか? –

答えて

1

は私のために最善を動作しているようです...結合の例はしませんでした。詳細については

$(document).ready(function() { 
       $(window).resize(function() { 
        alert(window.orientation); 
        }); 
       }); 
0

window.onorientationchangeイベントを使用できます。

1

まず、スタイルシートに次の行を追加します。id = "cssElement"または何か。

が続いてjQueryの使用:jQueryのコードの下に

$(document).ready(function(){ 

    // The event for orientation change 
    var onChanged = function() { 

     // The orientation 
     var orientation = window.orientation; 

     if(orientation == 90) { 
      $('#cssElement').attr('href', '/path/to/landscape.css'); 
     } else { 
      $('#cssElement').attr('href', '/path/to/portrait.css'); 
     } 

    }; 

    // Bind the orientation change event and bind onLoad 
    $(window).bind(orientationEvent, onChanged).bind('load', onChanged); 

}); 
+0

私は 'window.orientation'は文字列ではなく数字であると思いました。 – icktoofay

+0

onChangedイベントは、Safariモバイルブラウザからは一度も起動しません。 – c12

+0

^^ icktoofayあなたは正しいです(固定)。私は間違って何かを読んだ。とにかく、これは/電話のブラウザでは動作するはずです。 – SublymeRick

4

/* For portrait */ 
@media screen and (orientation: portrait) { 
    #toolbar { 
    width: 100%; 
    } 
} 

/* For landscape */ 

@media screen and (orientation: landscape) { 
    #toolbar { 
    position: fixed; 
    width: 2.65em; 
    height: 100%; 
    } 

    p { 
    margin-left: 2em; 
    } 
} 

here

+1

この作品は私のためにありがとう!時間を節約してください。 – Mike

+0

@Mikeようこそ。あなたは私の答えに投票するなら、あなたの感謝を表すことができます。 – isxaker

+1

npちょうどやって、もう一度txs – Mike

関連する問題