Get Screen Size In Pixels - thelastmile/FreeCodeCamp GitHub Wiki
Get Screen Size In Pixels
There may be times where your JS application needs to know what the size of the screen is to be able to do certain actions.
Luckily for us, there are built in JavaScript functions that can easily grab different dimensions of the screen on the user's device in pixels. What to use is dependent on what you'd like to do.
Get User's Resolution
You might wish to do something involving the user's device resolution. In this case, you should use the built-in screen.width
and screen.height
properties. These give you the size of the screen you're dealing with. This is not the area you have to work with on the page; these values represent the entirety of the screen i.e. the user's display resolution.
Get Browser Size
There might be an interesting application for dealing with the browser's current size. If you need to access these dimensions, use the screen.availWidth
and screen.availHeight
properties to do so. Remember, these are the dimensions of the entire browser window, from the top of the browser window down to where the browser meets a taskbar or the edge of your desktop, depending on your setup.
An interesting note: screen.availHeight
can also be used to figure out how tall a taskbar is on a computer. If your browser resolution is say 1366 x 768
, and screen.availHeight
reports 728 pixels, then your taskbar is 40 pixels high. You can also calculate taskbar height by subtracting screen.height
and screen.availHeight
:
var taskbarHeight = parseInt(screen.height,10) - parseInt(screen.availHeight,10) + " pixels";
/*
For a user that has a screen resolution of 1366 x 768 pixels, their taskbar is likely 40 pixels if using Windows 10 with no added accessibility features.
*/
Get Viewing Window Size
These properties are interesting and could be used to create some nifty effects. You can use window.innerHeight
and window.innerWidth
to get the size of the window for the web page as the user sees it. These values are not static and will change depending upon what is happening with the browser itself. In other words, if the browser itself is small, these values will be smaller, and if the browser is maximized, they'll be larger.
If, for example, you are working in Google Chrome and you open the console (must be docked to a side of the window), window.innerHeight
will change to reflect the height of the console because part of the window will be blocked. You can test this out by calling window.innerHeight
, take note of the value, then increase the size of the console, and call window.innerHeight
again.
These properties will also change if your browser is maximized or resized in any way. At a browser's maximum size, the property window.innerWidth
is the same as both screen.width
and screen.availWidth
(unless there is a taskbar on the side, in which case screen.availWidth
will not be equal). window.innerHeight
is equal to the amount of area in the window of the page itself (the area of the web page).
Get Height and Width of Web Page
If you need to see how tall or wide your web page actually is, there are properties to grab these dimensions: document.body.offsetWidth
and document.body.offsetHeight
. These properties represent the size of the content in the body of the page itself. A page with no content has a document.body.offsetHeight
of close to the same value as window.innerHeight
depending on what margins/padding are set on the body of the document. If margins and padding are set to 0
on the html root element and the body of the document, then document.body.offsetHeight
and window.innerHeight
will be equal with no content.
These properties could be used to interact with your page/application depending on what you want to do.
Conclusion
Which property to use is based solely upon what you wish to do. Read what each of them do, and decide for yourself which properties you need to use for your project.