bald
bald

Reputation: 56

JavaScript, track window screen width

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

Answers (2)

Kumara
Kumara

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

Youssouf Oumar
Youssouf Oumar

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 of window.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

Related Questions