Ticket #2071: css.2.diff
| File css.2.diff, 2.1 kB (added by brandon, 8 months ago) |
|---|
-
src/core.js
352 352 else 353 353 selector = jQuery.multiFilter( selector, this ); 354 354 355 var isArrayLike = selector.length && selector[selector.length - 1] !== undefined && !selector.nodeType;356 355 return this.filter(function() { 357 return isArrayLike ? jQuery.inArray( this, selector ) < 0 : this != selector;356 return jQuery.inArray( this, selector ) < 0; 358 357 }); 359 358 }, 360 359 … … 764 763 765 764 // A method for quickly swapping in/out CSS properties to get correct calculations 766 765 swap: function( elem, options, callback ) { 766 var old = {}; 767 767 // Remember the old values, and insert the new ones 768 768 for ( var name in options ) { 769 elem.style[ "old" +name ] = elem.style[ name ];769 old[ name ] = elem.style[ name ]; 770 770 elem.style[ name ] = options[ name ]; 771 771 } 772 772 … … 774 774 775 775 // Revert the old values 776 776 for ( var name in options ) 777 elem.style[ name ] = elem.style[ "old" +name ];777 elem.style[ name ] = old[ name ]; 778 778 }, 779 779 780 780 css: function( elem, name, force ) { 781 781 if ( name == "width" || name == "height" ) { 782 var width, height, props = { position: "absolute", visibility: "hidden", display:"block" };782 var val, props = { position: "absolute", visibility: "hidden", display:"block" }, which = name == "width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ]; 783 783 784 784 function getWH() { 785 width = elem.clientWidth; 786 height = elem.clientHeight; 785 val = name == "width" ? elem.offsetWidth : elem.offsetHeight; 786 var padding = 0, border = 0; 787 jQuery.each( which, function() { 788 padding += parseFloat(jQuery.curCSS( elem, "padding" + this, true)) || 0; 789 border += parseFloat(jQuery.curCSS( elem, "border" + this + "Width", true)) || 0; 790 }); 791 val -= Math.round(padding + border); 787 792 } 788 793 789 794 if ( jQuery(elem).is(":visible") ) 790 795 getWH(); 791 796 else 792 797 jQuery.swap( elem, props, getWH ); 793 794 return name == "width" ? width : height;798 799 return val; 795 800 } 796 801 797 802 return jQuery.curCSS( elem, name, force );