js判斷移動端橫豎屏視口檢測實(shí)現(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標(biāo)簽屬性設(shè)置
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
5、meta標(biāo)簽屬性設(shè)置設(shè)置劉海屏&底部小黑條
<meta name="viewport" content="viewport-fit=cover" />
設(shè)置安全區(qū)域與邊界的距離
/* 當(dāng)使用底部固定導(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判斷移動端橫豎屏視口檢測實(shí)現(xiàn)的幾種方法的文章就介紹到這了,更多相關(guān)js 移動端橫豎屏視口檢測內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
three.js中正交與透視投影相機(jī)的實(shí)戰(zhàn)應(yīng)用指南
在three.js中攝像機(jī)的作用就是不斷的拍攝我們創(chuàng)建好的場景,然后通過渲染器渲染到屏幕中,下面這篇文章主要給大家介紹了關(guān)于three.js中正交與透視投影相機(jī)應(yīng)用的相關(guān)資料,需要的朋友可以參考下2022-08-08
three.js 實(shí)現(xiàn)露珠滴落動畫效果的示例代碼
這篇文章主要介紹了three.js 實(shí)現(xiàn)露珠滴落動畫效果的示例代碼,非常不錯,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03
純javascript實(shí)現(xiàn)自動發(fā)送郵件
當(dāng)我們發(fā)送郵件時,可以自定義郵件發(fā)送的時間,那么使用代碼是如何實(shí)現(xiàn)的呢?下面通過本篇文章給大家介紹使用純javascript實(shí)現(xiàn)自動發(fā)送郵件,感興趣的朋友可以參考下2015-10-10
微信小程序?qū)崿F(xiàn)Timeline時間線效果
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)Timeline時間線效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-05-05
10行原生JS實(shí)現(xiàn)文字無縫滾動(超簡單)
下面小編就為大家分享一篇10行原生JS實(shí)現(xiàn)文字無縫滾動的效果,特別簡單,具有很好的參考價值,希望對大家有所幫助2018-01-01
動態(tài)規(guī)劃之使用備忘錄來改進(jìn)Javascript函數(shù)
這篇文章主要介紹了動態(tài)規(guī)劃之使用備忘錄來改進(jìn)Javascript函數(shù),動態(tài)規(guī)劃它既是一種數(shù)學(xué)優(yōu)化方法,也是一種計算機(jī)編程方法,下文相關(guān)資料介紹需要的小伙伴可以參考一下2022-04-04
SwfUpload在IE10上不出現(xiàn)上傳按鈕的解決方法
在測試中發(fā)現(xiàn)使用了SwfUpload實(shí)現(xiàn)的無刷新上傳功能,在IE10上竟然無法使用了,難道SwfUpload不支持嗎?下面與大家分享下通過修改SwfUplad.JS文件讓其支持ie102013-06-06
5秒后跳轉(zhuǎn)效果(setInterval/SetTimeOut)
實(shí)現(xiàn)5秒后自動跳轉(zhuǎn)效果有兩種方式setInterval與SetTimeOut,具體實(shí)現(xiàn)如下,感興趣的朋友可以參考下2013-05-05

