Reputation: 56
I have a function that tells what the current width of the user's screen is but when i resize window to width less than 1024 that function doesnt output width less than 1024
function xxx(){
var x = window.screen.Width
console.log(x)
}
setInterval(xxx, 1000)
output:
1024
even if screen width less than 1024 how can i fix this without using @media requests?
already tried:
window.screen.innerwidth
Upvotes: 3
Views: 4398
Reputation: 538
Like @YoussoufOumar said instead of using setInterval
to get the user's screen width, use resize
event to get the screen width whenever the screen resolution changes.
window.screen.width
get only the user's screen width and it doesn't change according to the manual resizing of the browser
Instead window.innerWidth
gets the browser width and it changes according to the manual resizing of the browser
function widthResizer(){
var width = window.innerWidth
console.log(width)
}
// Getting the width of the browser on load
widthResizer()
// Getting the width of the browser whenever the screen resolution changes.
window.addEventListener('resize', widthResizer)
Upvotes: 5
Reputation: 45825
Instead of setting up a setIntervall
to track screen width changes, use the built in resize
event.
As @Kumara pointed it, you would wanna use
window.innerWidth
, instead ofwindow.screen.width
, as the last one give the screen's original size, not the resized one.
function xxx(){
var x = window.innerWidth
console.log(x)
}
// that gives you the width on load
xxx();
// that is for when you change the width manually
window.addEventListener('resize', xxx);
Upvotes: 0