zoukankan      html  css  js  c++  java
  • 移动端横竖屏检测

    1、不同视口的获取方法

    // 获取视觉视口大小(包括垂直滚动条)
    let iw = window.innerWidth,
    	ih = window.innerHeight;
    console.log(iw, ih);
    
    // 获取视觉视口大小(内容区域大小,包括侧边栏、窗口镶边和调整窗口大小的边框)
    let ow = window.outerWidth,
    	oh = window.outerHeight;
    console.log(ow, oh);
    
    // 获取屏幕理想视口大小,固定值(屏幕分辨率大小)
    let sw = window.screen.width,
    	sh = window.screen.height;
    console.log(sw, sh);
    
    // 获取浏览器可用窗口的大小(包括内边距、但不包括垂直滚动条、边框和外边距)
    let aw = window.screen.availWidth,
    	ah = window.screen.availHeight;
    console.log(aw, ah);
    
    // 包括内边距、滚动条、边框和外边距
    let dow = document.documentElement.offsetWidth,
    	doh = document.documentElement.offsetHeight;
    console.log(dow, doh);
    
    // 在不使用滚动条的情况下适合视口中的所有内容所需的最小宽度和高度
    let dsW = document.documentElement.scrollWidth,
    	dsH = document.documentElement.scrollHeight;
    console.log(dsW, dsH);
    
    // 包含元素的内边距,但不包括边框、外边距或者垂直滚动条
    let cw = document.documentElement.clientWidth,
    	ch = document.documentElement.clientHeight;
    console.log(cw, ch);
    

    2、JavaScript检测横竖屏

    // window.orientation:获取屏幕旋转方向
    window.addEventListener('resize', () => {
    	// 正常方向或屏幕旋转180度
    	if (window.orientation === 180 || window.orientation === 0) {
    		console.log('竖屏')
    	}
    
    	// 屏幕顺时钟旋转90度或屏幕逆时针旋转90度
    	if (window.orientation === 90 || window.orientation === -90) {
    		console.log('横屏')
    	}
    });
    

    3、CSS检测横竖屏

    /* css检测横竖屏 */
    @media screen and (orientation:portrait) {
    
    	/* 竖屏 */
    	#app {
    		 100vw;
    		height: 100vh;
    		background: red;
    	}
    }
    
    @media screen and (orientation:landscape) {
    
    	/* 横屏 */
    	#app {
    		 50vw;
    		height: 100vh;
    		background: green;
    	}
    }
    

    4、meta标签属性设置

    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
    

    5、meta标签属性设置设置刘海屏&底部小黑条

    <meta name="viewport" content="viewport-fit=cover" />
    

    设置安全区域与边界的距离

    /* 当使用底部固定导航栏时,我们要为他们设置 padding值: */
    body {
    	padding-bottom: constant(safe-area-inset-bottom);
    	padding-bottom: env(safe-area-inset-bottom);
    }
    

    注:constant函数在iOS<11.2时生效,env在iOS>=11.2时生效

  • 相关阅读:
    6. Flask请求和响应
    5. Flask模板
    FW:Software Testing
    What is the difference between modified duration, effective duration and duration?
    How to push master to QA branch in GIT
    FTPS Firewall
    Query performance optimization of Vertica
    (Forward)5 Public Speaking Tips That'll Prepare You for Any Interview
    (转)The remote certificate is invalid according to the validation procedure
    Change
  • 原文地址:https://www.cnblogs.com/zxk5211/p/web_15.html
Copyright © 2011-2022 走看看