mirror of
https://github.com/jquery/jquery.git
synced 2024-11-23 02:54:22 +00:00
Fix width/height to work properly on window/document
This commit is contained in:
parent
415a0916b5
commit
537d7ca869
15
src/core.js
15
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" );
|
||||
};
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user