Skip to content

Instantly share code, notes, and snippets.

@bohman
Last active March 15, 2025 07:05
Show Gist options
  • Select an option

  • Save bohman/1351439 to your computer and use it in GitHub Desktop.

Select an option

Save bohman/1351439 to your computer and use it in GitHub Desktop.
jQuery get viewport size
// -----------
// Debugger that shows view port size. Helps when making responsive designs.
// -----------
function showViewPortSize(display) {
if(display) {
var height = jQuery(window).height();
var width = jQuery(window).width();
jQuery('body').prepend('<div id="viewportsize" style="z-index:9999;position:fixed;top:40px;left:5px;color:#fff;background:#000;padding:10px">Height: '+height+'<br>Width: '+width+'</div>');
jQuery(window).resize(function() {
height = jQuery(window).height();
width = jQuery(window).width();
jQuery('#viewportsize').html('Height: '+height+'<br>Width: '+width);
});
}
}
showViewPortSize(true);
@mikbe

mikbe commented Nov 30, 2014

Copy link
Copy Markdown

You're using the wrong method calls. A viewport is the "window" that's open on the document: how much of it you can see and where.

Using $(window).height() will not give you the viewport size it will give you the size of the entire window, which is usually the size of the entire document though the document could be even larger.

Solution
To get the size of the actual viewport use window.innerHeight and window.innerWidth.

Do not use the jQuery methods, e.g. $(window).innerHeight(), as these give the wrong numbers. They give you the window's height, not innerHeight.

@0xadri

0xadri commented Feb 23, 2016

Copy link
Copy Markdown

@mikbe thx for the input, this was spot on

@tim545

tim545 commented Mar 7, 2016

Copy link
Copy Markdown

thanks for posting @mikbe I was having a problem with this

@xmoonlight

Copy link
Copy Markdown

Thanks @mikbe. I'm add corrected code for best quality.

  // -----------
  // Debugger that shows view port size. Helps when making responsive designs.
  // -----------
  function showViewPortSize(display) {
    if(display) {
      var height = window.innerHeight;
      var width = window.innerWidth;
      jQuery('body').prepend('<div id="viewportsize" style="z-index:9999;position:fixed;bottom:0px;left:0px;color:#fff;background:#000;padding:10px">Height: '+height+'<br>Width: '+width+'</div>');
      jQuery(window).resize(function() {
              height = window.innerHeight;
              width = window.innerWidth;
              jQuery('#viewportsize').html('Height: '+height+'<br>Width: '+width);
      });
    }
  }

  $(document).ready(function(){
     showViewPortSize(true);
  });

@Jiab77

Jiab77 commented Sep 23, 2016

Copy link
Copy Markdown

Nice work @xmoonlight. Also thanks to @bohman for the original idea and @mikbe for the correction.

@sebabelmar

Copy link
Copy Markdown

Thanks @xmoonlight @bohman and @mikbe !!!!!!

@13hoop

13hoop commented May 7, 2017

Copy link
Copy Markdown

@mikbe
thx

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment