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

MySQL 8.0.21 installation tutorial with pictures and text

1. Download the download link Click download. You...

A line of CSS code that crashes Chrome

General CSS code will only cause minor issues wit...

ThingJS particle effects to achieve rain and snow effects with one click

Table of contents 1. Particle Effects 2. Load the...

HTML left and right layout example code

CSS: Copy code The code is as follows: html,body{ ...

How to use MySQL group by and order by together

Suppose there is a table: reward (reward table), ...

Detailed explanation of the use of MySQL group links

Grouping and linking in MYSQL are the two most co...

Nodejs uses readline to prompt for content input example code

Table of contents Preface 1. bat executes js 2. T...

Detailed steps to download Tomcat and put it on Linux

If you have just come into contact with Linux, th...

How to view and execute historical commands in Linux

View historical commands and execute specified co...

React Hooks Common Use Scenarios (Summary)

Table of contents 1. State Hook 1. Basic usage 2....

CSS to implement sprites and font icons

Sprites: In the past, each image resource was an ...

Detailed explanation of using Docker to build externally accessible MySQL

Install MySQL 8.0 docker run -p 63306:3306 -e MYS...

Things about installing Homebrew on Mac

Recently, Xiao Ming just bought a new Mac and wan...