// Оформительский блок
( function() {
var pixelPositionVal, pixelMarginRightVal, boxSizingReliableVal,
reliableHiddenOffsetsVal, reliableMarginRightVal, reliableMarginLeftVal,
container = document.createElement( "div" ), div = document.createElement( "div" );
if ( !div.style ) { return; }
div.style.cssText = "float:left;opacity:.5";
support.opacity = div.style.opacity === "0.5";
support.cssFloat = !!div.style.cssFloat;
div.style.backgroundClip = "content-box";
div.cloneNode( true ).style.backgroundClip = "";
support.clearCloneStyle = div.style.backgroundClip === "content-box";
container = document.createElement( "div" );
container.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;" +
"padding:0;margin-top:1px;position:absolute";
div.innerHTML = "";
container.appendChild( div );
support.boxSizing = div.style.boxSizing === "" || div.style.MozBoxSizing === "" ||
div.style.WebkitBoxSizing === "";
jQuery.extend( support, {
reliableHiddenOffsets: function() {
if ( pixelPositionVal == null ) { computeStyleTests(); }
return reliableHiddenOffsetsVal;
},
boxSizingReliable: function() {
if ( pixelPositionVal == null ) { computeStyleTests(); }
return boxSizingReliableVal;
},
pixelMarginRight: function() {
if ( pixelPositionVal == null ) { computeStyleTests(); }
return pixelMarginRightVal;
},
pixelPosition: function() {
if ( pixelPositionVal == null ) { computeStyleTests(); }
return pixelPositionVal;
},
reliableMarginRight: function() {
if ( pixelPositionVal == null ) { computeStyleTests(); }
return reliableMarginRightVal;
},
reliableMarginLeft: function() {
if ( pixelPositionVal == null ) { computeStyleTests(); }
return reliableMarginLeftVal;
}
} );
function computeStyleTests() {
var contents, divStyle, documentElement = document.documentElement;
documentElement.appendChild( container );
div.style.cssText = "-webkit-box-sizing:border-box;box-sizing:border-box;" +
"position:relative;display:block;" +
"margin:auto;border:1px;padding:1px;" + "top:1%;width:50%";
pixelPositionVal = boxSizingReliableVal = reliableMarginLeftVal = false;
pixelMarginRightVal = reliableMarginRightVal = true;
if ( window.getComputedStyle ) {
divStyle = window.getComputedStyle( div );
pixelPositionVal = ( divStyle || {} ).top !== "1%";
reliableMarginLeftVal = ( divStyle || {} ).marginLeft === "2px";
boxSizingReliableVal = ( divStyle || { width: "4px" } ).width === "4px";
div.style.marginRight = "50%";
pixelMarginRightVal = ( divStyle || { marginRight: "4px" } ).marginRight === "4px";
contents = div.appendChild( document.createElement( "div" ) );
contents.style.cssText = div.style.cssText =
"-webkit-box-sizing:content-box;-moz-box-sizing:content-box;" +
"box-sizing:content-box;display:block;margin:0;border:0;padding:0";
contents.style.marginRight = contents.style.width = "0";
div.style.width = "1px";
reliableMarginRightVal =
!parseFloat( ( window.getComputedStyle( contents ) || {} ).marginRight );
div.removeChild( contents );
}
div.style.display = "none";
reliableHiddenOffsetsVal = div.getClientRects().length === 0;
if ( reliableHiddenOffsetsVal ) {
div.style.display = "";
div.innerHTML = "<table><tr><td></td><td>t</td></tr></table>";
div.childNodes[ 0 ].style.borderCollapse = "separate";
contents = div.getElementsByTagName( "td" );
contents[ 0 ].style.cssText = "margin:0;border:0;padding:0;display:none";
reliableHiddenOffsetsVal = contents[ 0 ].offsetHeight === 0;
if ( reliableHiddenOffsetsVal ) {
contents[ 0 ].style.display = "";
contents[ 1 ].style.display = "none";
reliableHiddenOffsetsVal = contents[ 0 ].offsetHeight === 0;
}
}
documentElement.removeChild( container );
}
} )();
// Количество вызовов: 7
var getStyles,
// Количество вызовов: 8
curCSS,
// Количество вызовов: 1
rposition = /^(top|right|bottom|left)$/;
// Функции получения реальных значений CSS свойств
// Для браузеров, поддерживающих метод getComputedStyle
if ( window.getComputedStyle ) {
//...
// Для браузеров, поддерживающих метод currentStyle, альтернатива getComputedStyle
} else if ( documentElement.currentStyle ) {
//...
}
// Функция для работы с CSS хуками. Количество вызовов: 3
function addGetHookIf( conditionFn, hookFn ) { //... }
var
// Количество вызовов: 3
ralpha = /alpha\([^)]*\)/i,
// Количество вызовов: 1
ropacity = /opacity\s*=\s*([^)]*)/i,
rdisplayswap = /^(none|table(?!-c[ea]).+)/,
rnumsplit = new RegExp( "^(" + pnum + ")(.*)$", "i" ),
cssShow = { position: "absolute", visibility: "hidden", display: "block" },
// Количество вызовов: 2
cssNormalTransform = { letterSpacing: "0", fontWeight: "400" },
cssPrefixes = [ "Webkit", "O", "Moz", "ms" ],
emptyStyle = document.createElement( "div" ).style;