2011-11-11 104 views
3

當移動應用程序頁面方向從橫向更改爲縱向時,更改CSS文件的最佳方法是什麼,反之亦然。我只需要支持Android和iPhone。媒體查詢似乎不是最乾淨的方式,還有其他想法?基於移動定位更改CSS

+0

難道沒有綁定到窗口大小調整事件的任何選項,如果X越大,則Y是景觀? Y比X大你有肖像嗎?保持1 var作爲布爾值,isLandscape,如果改變了,編輯你的樣式表? – Niels

+1

爲什麼你認爲CSS媒體查詢不是乾淨的解決方案? –

回答

1

下面的jQuery代碼似乎工作最適合我......結合實例沒有。

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

您可以使用window.onorientationchange事件。

1

首先給你的樣式表包含一行id =「cssElement」或其他東西。

然後使用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