Detect browser zoom level
Learn how to check the browser zoom level in JavaScript.
You can use multiple methods in JavaScript to detect the browser zoom level, depending on the browser and the specific requirements of your application. Here are a few approaches to think about.
Differentiating pinch zooming and text scaling
The user can change the font size of the browser either permanently via the browser’s settings or on-the-fly via the keyboard keys CTRL+/- (Windows, Ubuntu) or Command+/- (Mac) and that refers to the text scaling.
The other type of zoom is the pinch zoom. Pinch zooming zooms the entire page – layout, formatting, and text size – at the same time. Elements keep their size and shape, reducing the need for us to compensate for text scaling. In effect, the browser bears the burden of relative size.
Determining the text zoom level in a browser
Method 1: using outerWidth
and innerWidth
properties
This method uses the read-only Window properties window.outerWidth
and window.innerWidth
.
If you want to count scrollbar size, then change window.outerWidth
to window.outerWidth - 10
. The number 10 is an average number for the scrollbar size.
Method 2: using outerWidth
and innerWidth
properties with different calculations
Method version 1 works inconsistently across different browsers. Here is a modified version number 2.
Method 3: using window.devicePixelRatio
property
Another version uses window.devicePixelRatio property
which provides the ratio of the resolution in physical pixels to the resolution in CSS pixels for the current device, which can be used to determine the text zoom level.
Identifying the pinch zoom level in a browser
This method uses modern VisualViewport API. The scale
read-only property of the VisualViewport interface returns the pinch-zoom scaling factor applied to the visual viewport.
Practical example of detecting browser zoom levels
See Detect browser zoom level example on SiteLint lab.
Comments