Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
J
jquery
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
夏彬
jquery
Commits
1e0eca0f
Commit
1e0eca0f
authored
Dec 18, 2012
by
Dave Methvin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
2.0: Reduce css.js
parent
c928ed43
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
35 additions
and
128 deletions
+35
-128
css.js
src/css.js
+35
-128
No files found.
src/css.js
View file @
1e0eca0f
var
curCSS
,
getStyles
,
iframe
,
ralpha
=
/alpha
\([^
)
]
*
\)
/i
,
ropacity
=
/opacity
\s
*=
\s
*
([^
)
]
*
)
/
,
rposition
=
/^
(
top|right|bottom|left
)
$/
,
var
curCSS
,
iframe
,
// swappable if display is none or starts with table except "table", "table-cell", or "table-caption"
// see here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
rdisplayswap
=
/^
(
none|table
(?!
-c
[
ea
])
.+
)
/
,
...
...
@@ -50,6 +47,12 @@ function isHidden( elem, el ) {
return
jQuery
.
css
(
elem
,
"display"
)
===
"none"
||
!
jQuery
.
contains
(
elem
.
ownerDocument
,
elem
);
}
// NOTE: we've included the "window" in window.getComputedStyle
// because jsdom on node.js will break without it.
function
getStyles
(
elem
)
{
return
window
.
getComputedStyle
(
elem
,
null
);
}
function
showHide
(
elements
,
show
)
{
var
elem
,
values
=
[],
...
...
@@ -294,99 +297,47 @@ jQuery.extend({
}
});
// NOTE: we've included the "window" in window.getComputedStyle
// because jsdom on node.js will break without it.
if
(
window
.
getComputedStyle
)
{
getStyles
=
function
(
elem
)
{
return
window
.
getComputedStyle
(
elem
,
null
);
};
curCSS
=
function
(
elem
,
name
,
_computed
)
{
var
width
,
minWidth
,
maxWidth
,
computed
=
_computed
||
getStyles
(
elem
),
// getPropertyValue is only needed for .css('filter') in IE9, see #12537
ret
=
computed
?
computed
.
getPropertyValue
(
name
)
||
computed
[
name
]
:
undefined
,
style
=
elem
.
style
;
if
(
computed
)
{
curCSS
=
function
(
elem
,
name
,
_computed
)
{
var
width
,
minWidth
,
maxWidth
,
computed
=
_computed
||
getStyles
(
elem
),
if
(
ret
===
""
&&
!
jQuery
.
contains
(
elem
.
ownerDocument
,
elem
)
)
{
ret
=
jQuery
.
style
(
elem
,
name
);
}
// A tribute to the "awesome hack by Dean Edwards"
// Chrome < 17 and Safari 5.0 uses "computed value" instead of "used value" for margin-right
// Safari 5.1.7 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels
// this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values
if
(
rnumnonpx
.
test
(
ret
)
&&
rmargin
.
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
;
};
}
else
if
(
document
.
documentElement
.
currentStyle
)
{
getStyles
=
function
(
elem
)
{
return
elem
.
currentStyle
;
};
// Support: IE9
// getPropertyValue is only needed for .css('filter') in IE9, see #12537
ret
=
computed
?
computed
.
getPropertyValue
(
name
)
||
computed
[
name
]
:
undefined
,
style
=
elem
.
style
;
curCSS
=
function
(
elem
,
name
,
_computed
)
{
var
left
,
rs
,
rsLeft
,
computed
=
_computed
||
getStyles
(
elem
),
ret
=
computed
?
computed
[
name
]
:
undefined
,
style
=
elem
.
style
;
if
(
computed
)
{
// Avoid setting ret to empty string here
// so we don't default to auto
if
(
ret
==
null
&&
style
&&
style
[
name
]
)
{
ret
=
style
[
name
];
if
(
ret
===
""
&&
!
jQuery
.
contains
(
elem
.
ownerDocument
,
elem
)
)
{
ret
=
jQuery
.
style
(
elem
,
name
);
}
// From the awesome hack by Dean Edwards
// http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291
// If we're not dealing with a regular pixel number
// but a number that has a weird ending, we need to convert it to pixels
// but not position css attributes, as those are proportional to the parent element instead
// and we can't measure the parent instead because it might trigger a "stacking dolls" problem
if
(
rnumnonpx
.
test
(
ret
)
&&
!
rposition
.
test
(
name
)
)
{
// Support: Chrome <17, Safari 5.1
// A tribute to the "awesome hack by Dean Edwards"
// Chrome < 17 and Safari 5.0 uses "computed value" instead of "used value" for margin-right
// Safari 5.1.7 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels
// this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values
if
(
rnumnonpx
.
test
(
ret
)
&&
rmargin
.
test
(
name
)
)
{
// Remember the original values
left
=
style
.
left
;
rs
=
elem
.
runtimeStyle
;
rsLeft
=
rs
&&
rs
.
left
;
width
=
style
.
width
;
minWidth
=
style
.
minWidth
;
maxWidth
=
style
.
maxWidth
;
// Put in the new values to get a computed value out
if
(
rsLeft
)
{
rs
.
left
=
elem
.
currentStyle
.
left
;
}
style
.
left
=
name
===
"fontSize"
?
"1em"
:
ret
;
ret
=
style
.
pixelLeft
+
"px"
;
style
.
minWidth
=
style
.
maxWidth
=
style
.
width
=
ret
;
ret
=
computed
.
width
;
// Revert the changed values
style
.
left
=
left
;
if
(
rsLeft
)
{
rs
.
left
=
rsLeft
;
}
style
.
width
=
width
;
style
.
minWidth
=
minWidth
;
style
.
maxWidth
=
maxWidth
;
}
}
return
ret
;
};
return
ret
===
""
?
"auto"
:
ret
;
};
}
function
setPositiveNumber
(
elem
,
value
,
subtract
)
{
var
matches
=
rnumsplit
.
exec
(
value
);
...
...
@@ -547,50 +498,6 @@ jQuery.each([ "height", "width" ], function( i, name ) {
};
});
if
(
!
jQuery
.
support
.
opacity
)
{
jQuery
.
cssHooks
.
opacity
=
{
get
:
function
(
elem
,
computed
)
{
// IE uses filters for opacity
return
ropacity
.
test
(
(
computed
&&
elem
.
currentStyle
?
elem
.
currentStyle
.
filter
:
elem
.
style
.
filter
)
||
""
)
?
(
0.01
*
parseFloat
(
RegExp
.
$1
)
)
+
""
:
computed
?
"1"
:
""
;
},
set
:
function
(
elem
,
value
)
{
var
style
=
elem
.
style
,
currentStyle
=
elem
.
currentStyle
,
opacity
=
jQuery
.
isNumeric
(
value
)
?
"alpha(opacity="
+
value
*
100
+
")"
:
""
,
filter
=
currentStyle
&&
currentStyle
.
filter
||
style
.
filter
||
""
;
// IE has trouble with opacity if it does not have layout
// Force it by setting the zoom level
style
.
zoom
=
1
;
// if setting opacity to 1, and no other filters exist - attempt to remove filter attribute #6652
// if value === "", then remove inline opacity #12685
if
(
(
value
>=
1
||
value
===
""
)
&&
jQuery
.
trim
(
filter
.
replace
(
ralpha
,
""
)
)
===
""
&&
style
.
removeAttribute
)
{
// Setting style.filter to null, "" & " " still leave "filter:" in the cssText
// if "filter:" is present at all, clearType is disabled, we want to avoid this
// style.removeAttribute is IE Only, but so apparently is this code path...
style
.
removeAttribute
(
"filter"
);
// if there is no filter style applied in a css rule or unset inline opacity, we are done
if
(
value
===
""
||
currentStyle
&&
!
currentStyle
.
filter
)
{
return
;
}
}
// otherwise, set new filter values
style
.
filter
=
ralpha
.
test
(
filter
)
?
filter
.
replace
(
ralpha
,
opacity
)
:
filter
+
" "
+
opacity
;
}
};
}
// These hooks cannot be added until DOM ready because the support test
// for it is not run until after DOM ready
jQuery
(
function
()
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment