Skip to content
Permalink
Browse files

Greatly reduced the complexity of the width/height methods. This also f…

  • Loading branch information
brandonaaron committed Dec 11, 2007
1 parent 540f930 commit 227f8b2514de31bd0b5c45ce6fc1b942c081f776
Showing with 14 additions and 47 deletions.
  1. +14 −47 src/core.js
@@ -772,55 +772,22 @@ jQuery.extend({
},

css: function( elem, name, force ) {
if ( name == "height" || name == "width" ) {
var old = {}, height, width;

// Revert the padding and border widths to get the
// correct height/width values
jQuery.each([ "Top", "Bottom", "Right", "Left" ], function(){
old[ "padding" + this ] = 0;
old[ "border" + this + "Width" ] = 0;
});

// Swap out the padding/border values temporarily
jQuery.swap( elem, old, function() {

// If the element is visible, then the calculation is easy
if ( jQuery( elem ).is(":visible") ) {
height = elem.offsetHeight;
width = elem.offsetWidth;

// Otherwise, we need to flip out more values
} else {
elem = jQuery( elem.cloneNode(true) )
.find(":radio").removeAttr("checked").removeAttr("defaultChecked").end()
.css({
visibility: "hidden",
position: "absolute",
display: "block",
right: "0",
left: "0"
}).appendTo( elem.parentNode )[0];

var position = jQuery.css( elem.parentNode, "position" ) || "static";
if ( position == "static" )
elem.parentNode.style.position = "relative";

height = elem.clientHeight;
width = elem.clientWidth;

if ( position == "static" )
elem.parentNode.style.position = "static";

elem.parentNode.removeChild( elem );
}
});
if ( name == "width" || name == "height" ) {
var width, height, props = { position: "absolute", visibility: "hidden", display:"block" };

function getWH() {
width = elem.clientWidth;
height = elem.clientHeight;
}

if ( jQuery(elem).is(":visible") )
getWH();
else
jQuery.swap( elem, props, getWH );

return name == "height" ?
height :
width;
return name == "width" ? width : height;
}

return jQuery.curCSS( elem, name, force );
},

0 comments on commit 227f8b2

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