Skip to content
Permalink
Browse files

Fix width/height to work properly on window/document

  • Loading branch information
brandonaaron committed Sep 17, 2007
1 parent 415a091 commit 537d7ca86902df1d2b61155d2822c7552030d846
Showing with 13 additions and 2 deletions.
  1. +13 −2 src/core.js
@@ -1114,16 +1114,27 @@ jQuery.each( [ "Height", "Width" ], function(i,name){
var n = name.toLowerCase();

jQuery.fn[ n ] = function(h) {
// Get window width or height
return this[0] == window ?
// Opera reports document.body.client[Width/Height] properly in both quirks and standards
jQuery.browser.opera && document.body["client" + name] ||

// Safari reports inner[Width/Height] just fine (Mozilla and Opera include scroll bar widths)
jQuery.browser.safari && self["inner" + name] ||
jQuery.boxModel && Math.max(document.documentElement["client" + name], document.body["client" + name]) ||
document.body["client" + name] :

// Everyone else use document.documentElement or document.body depending on Quirks vs Standards mode
jQuery.boxModel && document.documentElement["client" + name] || document.body["client" + name] :

// Get document width or height
this[0] == document ?
// Either scroll[Width/Height] or offset[Width/Height], whichever is greater (Mozilla reports scrollWidth the same as offsetWidth)
Math.max( document.body["scroll" + name], document.body["offset" + name] ) :

// Get or set width or height on the element
h == undefined ?
// Get width or height on the element
( this.length ? jQuery.css( this[0], n ) : null ) :
// Set the width or height on the element (default to pixels if value is unitless)
this.css( n, h.constructor == String ? h : h + "px" );
};
});

0 comments on commit 537d7ca

Please sign in to comment.
You can’t perform that action at this time.