移動端判斷手機橫豎屏狀態

禁用用戶自動縮放功能:

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
 

判斷橫豎屏狀態有兩種方法:css判斷、js判斷

(一)、css判斷橫屏仍是豎屏

一、寫在同一個css文件中
@media screen and (orientation: portrait) {
  /*豎屏 css*/
} 
@media screen and (orientation: landscape) {
  /*橫屏 css*/
}

根據橫豎屏設置大小時,正常頁面尺寸常規書寫便可,橫屏樣式單獨設置。即只需在原有樣式基礎上添加橫屏樣式便可,css

@media screen and (orientation: landscape) {
  /*橫屏 css*/ }
當用戶橫屏時加載橫屏樣式,豎屏時取消橫屏樣式即加載默認樣式。

二、分開寫在兩個css中,根據橫豎屏引用不一樣樣式文件:spa

    根據橫豎屏引用不一樣樣式文件scala

橫屏:code

<link rel="stylesheet" media="all and (orientation:landscape)" href="landscape.css">

豎屏:blog

<link rel="stylesheet" media="all and (orientation:portrait)" href="portrait.css">

備註:css判斷橫豎屏是時時的可無縫銜接,即橫屏加載橫屏樣式,豎屏加載豎屏樣式,rem

(二)js判斷橫屏仍是豎屏

//判斷手機橫豎屏狀態:
    window.addEventListener("onorientationchange" in window ? "orientationchange" : "resize", function() {
        if (window.orientation === 180 || window.orientation === 0) { 
            console.log("豎屏");
            $(".codeIg_s").removeClass('vercreen');//取消橫屏樣式
        } 
        if (window.orientation === 90 || window.orientation === -90 ){ 
            console.log("橫屏");
            $(".codeIg_s").addClass('vercreen');//添加橫屏樣式
        }  
    }, false); 

備註:橫屏樣式在vercreen類名下修改原默認樣式,可正常使用,缺點是必須有橫豎屏的切換狀態纔會觸發。it

 

若是用戶默認是橫屏狀態時不會觸發橫屏條件判斷,只有用戶從橫屏轉爲豎屏或者從豎屏轉爲橫屏時纔會觸發相應條件判斷。io

沒有切換狀態時會不執行任何條件判斷,此處不如css判斷橫豎屏全面。console

相關文章
相關標籤/搜索