mirror of
https://github.com/jquery/jquery.git
synced 2026-02-01 05:05:02 -05:00
58
src/css/defaultDisplay.js
Normal file
58
src/css/defaultDisplay.js
Normal file
@@ -0,0 +1,58 @@
|
||||
define([
|
||||
"../core",
|
||||
"../manipulation" // appendTo
|
||||
], function( jQuery ) {
|
||||
|
||||
var iframe,
|
||||
elemdisplay = { BODY: "block" };
|
||||
|
||||
/**
|
||||
* Retrieve the actual display of a element
|
||||
* @param {String} name nodeName of the element
|
||||
* @param {Object} doc Document object
|
||||
*/
|
||||
function actualDisplay( name, doc ) {
|
||||
var elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ),
|
||||
display = jQuery.css( elem[0], "display" );
|
||||
elem.remove();
|
||||
return display;
|
||||
}
|
||||
|
||||
/**
|
||||
* Try to determine the default display value of an element
|
||||
* @param {String} nodeName
|
||||
*/
|
||||
function defaultDisplay( nodeName ) {
|
||||
var doc = document,
|
||||
display = elemdisplay[ nodeName ];
|
||||
|
||||
if ( !display ) {
|
||||
display = actualDisplay( nodeName, doc );
|
||||
|
||||
// If the simple way fails, read from inside an iframe
|
||||
if ( display === "none" || !display ) {
|
||||
// Use the already-created iframe if possible
|
||||
iframe = ( iframe ||
|
||||
jQuery("<iframe frameborder='0' width='0' height='0'/>")
|
||||
.css( "cssText", "display:block !important" )
|
||||
).appendTo( doc.documentElement );
|
||||
|
||||
// Always write a new HTML skeleton so Webkit and Firefox don't choke on reuse
|
||||
doc = ( iframe[0].contentWindow || iframe[0].contentDocument ).document;
|
||||
doc.write("<!doctype html><html><body>");
|
||||
doc.close();
|
||||
|
||||
display = actualDisplay( nodeName, doc );
|
||||
iframe.detach();
|
||||
}
|
||||
|
||||
// Store the correct default display
|
||||
elemdisplay[ nodeName ] = display;
|
||||
}
|
||||
|
||||
return display;
|
||||
}
|
||||
|
||||
return defaultDisplay;
|
||||
|
||||
});
|
||||
15
src/css/hidden-visible-selectors.js
Normal file
15
src/css/hidden-visible-selectors.js
Normal file
@@ -0,0 +1,15 @@
|
||||
define([
|
||||
"../core",
|
||||
"../selector"
|
||||
], function( jQuery ) {
|
||||
|
||||
jQuery.expr.filters.hidden = function( elem ) {
|
||||
// Support: Opera <= 12.12
|
||||
// Opera reports offsetWidths and offsetHeights less than zero on some elements
|
||||
return elem.offsetWidth <= 0 && elem.offsetHeight <= 0;
|
||||
};
|
||||
jQuery.expr.filters.visible = function( elem ) {
|
||||
return !jQuery.expr.filters.hidden( elem );
|
||||
};
|
||||
|
||||
});
|
||||
3
src/css/var/cssExpand.js
Normal file
3
src/css/var/cssExpand.js
Normal file
@@ -0,0 +1,3 @@
|
||||
define(function() {
|
||||
return [ "Top", "Right", "Bottom", "Left" ];
|
||||
});
|
||||
13
src/css/var/isHidden.js
Normal file
13
src/css/var/isHidden.js
Normal file
@@ -0,0 +1,13 @@
|
||||
define([
|
||||
"../../core",
|
||||
"../../selector"
|
||||
// css is assumed
|
||||
], function( jQuery ) {
|
||||
|
||||
return function( elem, el ) {
|
||||
// isHidden might be called from jQuery#filter function;
|
||||
// in that case, element will be second argument
|
||||
elem = el || elem;
|
||||
return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem );
|
||||
};
|
||||
});
|
||||
Reference in New Issue
Block a user