66 lines
1.6 KiB
JavaScript
66 lines
1.6 KiB
JavaScript
|
define( [
|
||
|
"../core",
|
||
|
"../core/isAttached",
|
||
|
"./var/rboxStyle",
|
||
|
"./var/rnumnonpx",
|
||
|
"./var/getStyles",
|
||
|
"./support"
|
||
|
], function( jQuery, isAttached, rboxStyle, rnumnonpx, getStyles, support ) {
|
||
|
|
||
|
"use strict";
|
||
|
|
||
|
function curCSS( elem, name, computed ) {
|
||
|
var width, minWidth, maxWidth, ret,
|
||
|
|
||
|
// Support: Firefox 51+
|
||
|
// Retrieving style before computed somehow
|
||
|
// fixes an issue with getting wrong values
|
||
|
// on detached elements
|
||
|
style = elem.style;
|
||
|
|
||
|
computed = computed || getStyles( elem );
|
||
|
|
||
|
// getPropertyValue is needed for:
|
||
|
// .css('filter') (IE 9 only, #12537)
|
||
|
// .css('--customProperty) (#3144)
|
||
|
if ( computed ) {
|
||
|
ret = computed.getPropertyValue( name ) || computed[ name ];
|
||
|
|
||
|
if ( ret === "" && !isAttached( elem ) ) {
|
||
|
ret = jQuery.style( elem, name );
|
||
|
}
|
||
|
|
||
|
// A tribute to the "awesome hack by Dean Edwards"
|
||
|
// Android Browser returns percentage for some values,
|
||
|
// but width seems to be reliably pixels.
|
||
|
// This is against the CSSOM draft spec:
|
||
|
// https://drafts.csswg.org/cssom/#resolved-values
|
||
|
if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {
|
||
|
|
||
|
// Remember the original values
|
||
|
width = style.width;
|
||
|
minWidth = style.minWidth;
|
||
|
maxWidth = style.maxWidth;
|
||
|
|
||
|
// Put in the new values to get a computed value out
|
||
|
style.minWidth = style.maxWidth = style.width = ret;
|
||
|
ret = computed.width;
|
||
|
|
||
|
// Revert the changed values
|
||
|
style.width = width;
|
||
|
style.minWidth = minWidth;
|
||
|
style.maxWidth = maxWidth;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return ret !== undefined ?
|
||
|
|
||
|
// Support: IE <=9 - 11 only
|
||
|
// IE returns zIndex value as an integer.
|
||
|
ret + "" :
|
||
|
ret;
|
||
|
}
|
||
|
|
||
|
return curCSS;
|
||
|
} );
|