js判斷移動端橫豎屏視口檢測實現(xiàn)的幾種方法
1、不同視口的獲取方法
// 獲取視覺視口大?。òù怪睗L動條) let iw = window.innerWidth, ih = window.innerHeight; console.log(iw, ih); // 獲取視覺視口大?。▋?nèi)容區(qū)域大小,包括側(cè)邊欄、窗口鑲邊和調(diào)整窗口大小的邊框) let ow = window.outerWidth, oh = window.outerHeight; console.log(ow, oh); // 獲取屏幕理想視口大小,固定值(屏幕分辨率大?。? let sw = window.screen.width, sh = window.screen.height; console.log(sw, sh); // 獲取瀏覽器可用窗口的大小(包括內(nèi)邊距、但不包括垂直滾動條、邊框和外邊距) let aw = window.screen.availWidth, ah = window.screen.availHeight; console.log(aw, ah); // 包括內(nèi)邊距、滾動條、邊框和外邊距 let dow = document.documentElement.offsetWidth, doh = document.documentElement.offsetHeight; console.log(dow, doh); // 在不使用滾動條的情況下適合視口中的所有內(nèi)容所需的最小寬度和高度 let dsW = document.documentElement.scrollWidth, dsH = document.documentElement.scrollHeight; console.log(dsW, dsH); // 包含元素的內(nèi)邊距,但不包括邊框、外邊距或者垂直滾動條 let cw = document.documentElement.clientWidth, ch = document.documentElement.clientHeight; console.log(cw, ch);
2、JavaScript檢測橫豎屏
// window.orientation:獲取屏幕旋轉(zhuǎn)方向 window.addEventListener('resize', () => { // 正常方向或屏幕旋轉(zhuǎn)180度 if (window.orientation === 180 || window.orientation === 0) { console.log('豎屏') } // 屏幕順時鐘旋轉(zhuǎn)90度或屏幕逆時針旋轉(zhuǎn)90度 if (window.orientation === 90 || window.orientation === -90) { console.log('橫屏') } });
3、CSS檢測橫豎屏
/* css檢測橫豎屏 */ @media screen and (orientation:portrait) { /* 豎屏 */ #app { width: 100vw; height: 100vh; background: red; } } @media screen and (orientation:landscape) { /* 橫屏 */ #app { width: 50vw; height: 100vh; background: green; } }
4、meta標簽屬性設(shè)置
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
5、meta標簽屬性設(shè)置設(shè)置劉海屏&底部小黑條
<meta name="viewport" content="viewport-fit=cover" />
設(shè)置安全區(qū)域與邊界的距離
/* 當使用底部固定導(dǎo)航欄時,我們要為他們設(shè)置 padding值: */ body { padding-bottom: constant(safe-area-inset-bottom); padding-bottom: env(safe-area-inset-bottom); }
注:constant 函數(shù)在iOS < 11.2時生效,env 在iOS >= 11.2時生效
到此這篇關(guān)于js判斷移動端橫豎屏視口檢測實現(xiàn)的幾種方法的文章就介紹到這了,更多相關(guān)js 移動端橫豎屏視口檢測內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JavaScript 參數(shù)中的數(shù)組展開 [譯]
有些時候,我們需要把一個數(shù)組展開成多個元素,然后把這些元素作為函數(shù)調(diào)用的參數(shù).JavaScript中可以使用Function.prototype.apply來實現(xiàn)這種展開操作,但它不能被應(yīng)用在執(zhí)行構(gòu)造函數(shù)的情況下.本文解釋了什么是展開操作以及如何在使用new運算符的同時進行展開操作2012-09-09微信小程序使用echarts獲取數(shù)據(jù)并生成折線圖
這篇文章主要介紹了微信小程序使用echarts獲取數(shù)據(jù)并生成折線圖,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-10-10JS簡單實現(xiàn)多級Select聯(lián)動菜單效果代碼
這篇文章主要介紹了JS簡單實現(xiàn)多級Select聯(lián)動菜單效果代碼,涉及JavaScript數(shù)組元素的遍歷及動態(tài)設(shè)置select的實現(xiàn)技巧,需要的朋友可以參考下2015-09-09由淺入深講解Javascript繼承機制與simple-inheritance源碼分析
Javascript語言對繼承實現(xiàn)的并不好,需要工程師自己去實現(xiàn)一套完整的繼承機制。下面我們由淺入深的系統(tǒng)掌握使用javascript繼承的技巧,對javascript繼承相關(guān)知識感興趣的朋友一起看看吧2015-12-12微信小程序?qū)崿F(xiàn)側(cè)邊導(dǎo)航欄
這篇文章主要為大家詳細介紹了微信小程序?qū)崿F(xiàn)側(cè)邊導(dǎo)航欄,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-07-07js 右鍵菜單,支持不同對象不同菜單(兼容IE、Firefox)
版本雖然很老也不符合標準了,不過代碼是值得參考的,需要右鍵菜單的朋友可以參考下。2010-01-01