Several methods for js to determine the horizontal and vertical screen viewport detection of mobile terminals

Several methods for js to determine the horizontal and vertical screen viewport detection of mobile terminals

1. How to obtain different viewports

// Get the visual viewport size (including vertical scroll bar)
let iw = window.innerWidth,
 ih = window.innerHeight;
console.log(iw, ih);

// Get the visual viewport size (the size of the content area, including the sidebar, window chrome, and borders for resizing the window)
let ow = window.outerWidth,
 oh = window.outerHeight;
console.log(ow, oh);

// Get the ideal viewport size of the screen, fixed value (screen resolution size)
let sw = window.screen.width,
 sh = window.screen.height;
console.log(sw, sh);

// Get the size of the browser's available window (including padding, but excluding vertical scroll bars, borders, and margins)
let aw = window.screen.availWidth,
 ah = window.screen.availHeight;
console.log(aw, ah);

// Including padding, scrollbars, borders and margins let dow = document.documentElement.offsetWidth,
 doh = document.documentElement.offsetHeight;
console.log(dow, doh);

// The minimum width and height required to fit all content in the viewport without using scrollbars let dsW = document.documentElement.scrollWidth,
 dsH = document.documentElement.scrollHeight;
console.log(dsW, dsH);

// Includes the element's padding, but not borders, margins, or vertical scrollbars let cw = document.documentElement.clientWidth,
 ch = document.documentElement.clientHeight;
console.log(cw, ch);

2. JavaScript detection of horizontal and vertical screen

// window.orientation: Get the screen rotation direction window.addEventListener('resize', () => {
 // Normal orientation or screen rotated 180 degrees if (window.orientation === 180 || window.orientation === 0) {
  console.log('vertical screen')
 }

 // The screen rotates 90 degrees clockwise or 90 degrees counterclockwise if (window.orientation === 90 || window.orientation === -90) {
  console.log('horizontal screen')
 }
});

3. CSS detection of horizontal and vertical screen

/*css detection of horizontal and vertical screen*/
@media screen and (orientation:portrait) {

 /* Vertical screen */
 #app {
  width: 100vw;
  height: 100vh;
  background: red;
 }
}

@media screen and (orientation:landscape) {

 /* Horizontal screen */
 #app {
  width: 50vw;
  height: 100vh;
  background: green;
 }
}

4. Meta tag attribute settings

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

5. Meta tag attribute settings Set up the notch screen & bottom black bar

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

Set the distance between the safe area and the border

/* When using the bottom fixed navigation bar, we need to set the padding value for them: */
body {
 padding-bottom: constant(safe-area-inset-bottom);
 padding-bottom: env(safe-area-inset-bottom);
}

Note: constant function is effective when iOS < 11.2, env is effective when iOS >= 11.2

This concludes this article about several methods of using js to determine the horizontal and vertical viewport detection on mobile terminals. For more relevant content on js horizontal and vertical viewport detection on mobile terminals, please search previous articles on 123WORDPRESS.COM or continue to browse the following related articles. I hope you will support 123WORDPRESS.COM in the future!

You may also be interested in:
  • Use JS to determine the horizontal and vertical screen status of the mobile phone
  • JS code to detect horizontal and vertical screen on mobile terminal

<<:  How to use vs2019 for Linux remote development

>>:  MySQL index leftmost principle example code

Recommend

Vue implements the full selection function

This article example shares the specific code of ...

Class in front-end JavaScript

Table of contents 1. Class 1.1 constructor() 1.2 ...

Using Apache ab to perform http performance testing

Mac comes with Apache environment Open Terminal a...

How to use Docker to build enterprise-level custom images

Preface Before leaving get off work, the author r...

Several ways to encapsulate breadcrumb function components in Vue3

Table of contents Preface 1. Why do we need bread...

Vue3.0 uses the vue-grid-layout plug-in to implement drag layout

Table of contents 1. Plugins 2. Interlude 3. Impl...

vite2.x implements on-demand loading of ant-design-vue@next components

1. Use version vite:2.0 ant-design-vue: 2.0.0-rc....

Markup Language - Phrase Elements

Click here to return to the 123WORDPRESS.COM HTML ...

Detailed explanation of transaction isolation levels in MySql study notes

background When we talk about transactions, every...

Install Linux using VMware virtual machine (CentOS7 image)

1. VMware download and install Link: https://www....