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
37b607d2
Commit
37b607d2
authored
Sep 16, 2010
by
jeresig
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Split apart jQuery.css into jQuery.css (computed values) and jQuery.style (currently set values).
parent
2131e1a7
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
85 additions
and
65 deletions
+85
-65
css.js
src/css.js
+56
-28
dimensions.js
src/dimensions.js
+2
-2
effects.js
src/effects.js
+11
-11
offset.js
src/offset.js
+9
-9
css.js
test/unit/css.js
+2
-10
effects.js
test/unit/effects.js
+5
-5
No files found.
src/css.js
View file @
37b607d2
...
@@ -26,6 +26,8 @@ jQuery.fn.css = function( name, value ) {
...
@@ -26,6 +26,8 @@ jQuery.fn.css = function( name, value ) {
};
};
jQuery
.
extend
({
jQuery
.
extend
({
// Add in style property hooks for overriding the default
// behavior of getting and setting a style property
cssHooks
:
{
cssHooks
:
{
opacity
:
{
opacity
:
{
get
:
function
(
elem
)
{
get
:
function
(
elem
)
{
...
@@ -36,7 +38,7 @@ jQuery.extend({
...
@@ -36,7 +38,7 @@ jQuery.extend({
}
}
},
},
//
e
xclude the following css properties to add px
//
E
xclude the following css properties to add px
cssNumber
:
{
cssNumber
:
{
"zIndex"
:
true
,
"zIndex"
:
true
,
"fontWeight"
:
true
,
"fontWeight"
:
true
,
...
@@ -45,43 +47,67 @@ jQuery.extend({
...
@@ -45,43 +47,67 @@ jQuery.extend({
"lineHeight"
:
true
"lineHeight"
:
true
},
},
// Add in properties whose names you wish to fix before
// setting or getting the value
cssProps
:
{
cssProps
:
{
// normalize float css property
// normalize float css property
"float"
:
jQuery
.
support
.
cssFloat
?
"cssFloat"
:
"styleFloat"
"float"
:
jQuery
.
support
.
cssFloat
?
"cssFloat"
:
"styleFloat"
},
},
css
:
function
(
elem
,
name
,
value
,
force
,
extra
)
{
// Get and set the style property on a DOM Node
// don't set styles on text and comment nodes
style
:
function
(
elem
,
name
,
value
,
extra
)
{
if
(
!
elem
||
elem
.
nodeType
===
3
||
elem
.
nodeType
===
8
)
{
// Don't set styles on text and comment nodes
if
(
!
elem
||
elem
.
nodeType
===
3
||
elem
.
nodeType
===
8
||
!
elem
.
style
)
{
return
undefined
;
return
undefined
;
}
}
// Make sure that we're working with the right name
var
ret
,
origName
=
name
.
replace
(
rdashAlpha
,
fcamelCase
),
var
ret
,
origName
=
name
.
replace
(
rdashAlpha
,
fcamelCase
),
style
=
elem
.
style
||
{},
hooks
=
jQuery
.
cssHooks
[
origName
]
||
{}
;
style
=
elem
.
style
,
hooks
=
jQuery
.
cssHooks
[
origName
]
;
name
=
jQuery
.
cssProps
[
origName
]
||
origName
;
name
=
jQuery
.
cssProps
[
origName
]
||
origName
;
// Check if we're setting a value
if
(
value
!==
undefined
)
{
if
(
value
!==
undefined
)
{
// If a number was passed in, add 'px' to the (except for certain CSS properties)
if
(
typeof
value
===
"number"
&&
!
jQuery
.
cssNumber
[
origName
]
)
{
if
(
typeof
value
===
"number"
&&
!
jQuery
.
cssNumber
[
origName
]
)
{
value
+=
"px"
;
value
+=
"px"
;
}
}
if
(
!
(
"set"
in
hooks
)
||
(
value
=
hooks
.
set
(
elem
,
value
))
!==
undefined
)
{
// If a hook was provided, use that value, otherwise just set the specified value
if
(
!
hooks
||
!
(
"set"
in
hooks
)
||
(
value
=
hooks
.
set
(
elem
,
value
))
!==
undefined
)
{
style
[
name
]
=
value
;
style
[
name
]
=
value
;
}
}
}
else
{
}
else
{
if
(
!
force
&&
"get"
in
hooks
&&
(
ret
=
hooks
.
get
(
elem
,
force
,
extra
))
!==
undefined
)
{
// If a hook was provided get the non-computed value from there
if
(
hooks
&&
"get"
in
hooks
&&
(
ret
=
hooks
.
get
(
elem
,
false
,
extra
))
!==
undefined
)
{
return
ret
;
return
ret
;
}
}
else
if
(
!
force
&&
style
[
name
]
)
{
// Otherwise just get the value from the style object
ret
=
style
[
name
];
return
style
[
name
];
}
else
if
(
force
!==
false
&&
curCSS
)
{
ret
=
curCSS
(
elem
,
name
,
origName
);
}
}
},
css
:
function
(
elem
,
name
,
value
,
extra
)
{
// Make sure that we're working with the right name
var
ret
,
origName
=
name
.
replace
(
rdashAlpha
,
fcamelCase
),
hooks
=
jQuery
.
cssHooks
[
origName
];
name
=
jQuery
.
cssProps
[
origName
]
||
origName
;
// Check if we're setting a value, just use jQuery.style (DEPRECATED)
if
(
value
!==
undefined
)
{
jQuery
.
style
(
elem
,
name
,
value
);
// If a hook was provided get the computed value from there
}
else
if
(
hooks
&&
"get"
in
hooks
&&
(
ret
=
hooks
.
get
(
elem
,
true
,
extra
))
!==
undefined
)
{
return
ret
;
return
ret
;
// Otherwise, if a way to get the computed value exists, use that
}
else
if
(
curCSS
)
{
return
curCSS
(
elem
,
name
,
origName
);
}
}
},
},
...
@@ -106,9 +132,10 @@ jQuery.extend({
...
@@ -106,9 +132,10 @@ jQuery.extend({
jQuery
.
each
([
"height"
,
"width"
],
function
(
i
,
name
)
{
jQuery
.
each
([
"height"
,
"width"
],
function
(
i
,
name
)
{
jQuery
.
cssHooks
[
name
]
=
{
jQuery
.
cssHooks
[
name
]
=
{
get
:
function
(
elem
,
force
,
extra
)
{
get
:
function
(
elem
,
computed
,
extra
)
{
var
val
;
var
val
;
if
(
computed
)
{
if
(
elem
.
offsetWidth
!==
0
)
{
if
(
elem
.
offsetWidth
!==
0
)
{
val
=
getWH
(
elem
,
name
,
extra
);
val
=
getWH
(
elem
,
name
,
extra
);
...
@@ -119,6 +146,7 @@ jQuery.each(["height", "width"], function( i, name ) {
...
@@ -119,6 +146,7 @@ jQuery.each(["height", "width"], function( i, name ) {
}
}
return
val
+
"px"
;
return
val
+
"px"
;
}
},
},
set
:
function
(
elem
,
value
)
{
set
:
function
(
elem
,
value
)
{
...
@@ -134,9 +162,9 @@ jQuery.each(["height", "width"], function( i, name ) {
...
@@ -134,9 +162,9 @@ jQuery.each(["height", "width"], function( i, name ) {
if
(
!
jQuery
.
support
.
opacity
)
{
if
(
!
jQuery
.
support
.
opacity
)
{
jQuery
.
cssHooks
.
opacity
=
{
jQuery
.
cssHooks
.
opacity
=
{
get
:
function
(
elem
,
force
)
{
get
:
function
(
elem
,
computed
)
{
// IE uses filters for opacity
// IE uses filters for opacity
return
ropacity
.
test
(
elem
.
currentStyle
.
filter
||
""
)
?
return
ropacity
.
test
(
(
computed
?
elem
.
currentStyle
.
filter
:
elem
.
style
.
filter
)
||
""
)
?
(
parseFloat
(
RegExp
.
$1
)
/
100
)
+
""
:
(
parseFloat
(
RegExp
.
$1
)
/
100
)
+
""
:
"1"
;
"1"
;
},
},
...
@@ -153,7 +181,7 @@ if ( !jQuery.support.opacity ) {
...
@@ -153,7 +181,7 @@ if ( !jQuery.support.opacity ) {
""
:
""
:
"alpha(opacity="
+
value
*
100
+
")"
;
"alpha(opacity="
+
value
*
100
+
")"
;
var
filter
=
style
.
filter
||
jQuery
.
css
(
elem
,
"filter"
)
||
""
;
var
filter
=
style
.
filter
||
elem
.
currentStyle
.
filter
||
""
;
style
.
filter
=
ralpha
.
test
(
filter
)
?
style
.
filter
=
ralpha
.
test
(
filter
)
?
filter
.
replace
(
ralpha
,
opacity
)
:
filter
.
replace
(
ralpha
,
opacity
)
:
...
@@ -217,14 +245,14 @@ function getWH( elem, name, extra ) {
...
@@ -217,14 +245,14 @@ function getWH( elem, name, extra ) {
jQuery
.
each
(
which
,
function
()
{
jQuery
.
each
(
which
,
function
()
{
if
(
!
extra
)
{
if
(
!
extra
)
{
val
-=
parseFloat
(
jQuery
.
css
(
elem
,
"padding"
+
this
,
undefined
,
true
))
||
0
;
val
-=
parseFloat
(
jQuery
.
css
(
elem
,
"padding"
+
this
))
||
0
;
}
}
if
(
extra
===
"margin"
)
{
if
(
extra
===
"margin"
)
{
val
+=
parseFloat
(
jQuery
.
css
(
elem
,
"margin"
+
this
,
undefined
,
true
))
||
0
;
val
+=
parseFloat
(
jQuery
.
css
(
elem
,
"margin"
+
this
))
||
0
;
}
else
{
}
else
{
val
-=
parseFloat
(
jQuery
.
css
(
elem
,
"border"
+
this
+
"Width"
,
undefined
,
true
))
||
0
;
val
-=
parseFloat
(
jQuery
.
css
(
elem
,
"border"
+
this
+
"Width"
))
||
0
;
}
}
});
});
...
@@ -240,7 +268,7 @@ if ( jQuery.expr && jQuery.expr.filters ) {
...
@@ -240,7 +268,7 @@ if ( jQuery.expr && jQuery.expr.filters ) {
true
:
true
:
width
>
0
&&
height
>
0
&&
!
skip
?
width
>
0
&&
height
>
0
&&
!
skip
?
false
:
false
:
jQuery
.
css
(
elem
,
"display"
)
===
"none"
;
(
elem
.
style
.
display
||
jQuery
.
css
(
elem
,
"display"
)
)
===
"none"
;
};
};
jQuery
.
expr
.
filters
.
visible
=
function
(
elem
)
{
jQuery
.
expr
.
filters
.
visible
=
function
(
elem
)
{
...
...
src/dimensions.js
View file @
37b607d2
...
@@ -8,14 +8,14 @@ jQuery.each([ "Height", "Width" ], function( i, name ) {
...
@@ -8,14 +8,14 @@ jQuery.each([ "Height", "Width" ], function( i, name ) {
// innerHeight and innerWidth
// innerHeight and innerWidth
jQuery
.
fn
[
"inner"
+
name
]
=
function
()
{
jQuery
.
fn
[
"inner"
+
name
]
=
function
()
{
return
this
[
0
]
?
return
this
[
0
]
?
parseFloat
(
jQuery
.
css
(
this
[
0
],
type
,
undefined
,
false
,
"padding"
),
10
)
:
parseFloat
(
jQuery
.
css
(
this
[
0
],
type
,
undefined
,
"padding"
),
10
)
:
null
;
null
;
};
};
// outerHeight and outerWidth
// outerHeight and outerWidth
jQuery
.
fn
[
"outer"
+
name
]
=
function
(
margin
)
{
jQuery
.
fn
[
"outer"
+
name
]
=
function
(
margin
)
{
return
this
[
0
]
?
return
this
[
0
]
?
parseFloat
(
jQuery
.
css
(
this
[
0
],
type
,
undefined
,
false
,
margin
?
"margin"
:
"border"
),
10
)
:
parseFloat
(
jQuery
.
css
(
this
[
0
],
type
,
undefined
,
margin
?
"margin"
:
"border"
),
10
)
:
null
;
null
;
};
};
...
...
src/effects.js
View file @
37b607d2
...
@@ -29,7 +29,7 @@ jQuery.fn.extend({
...
@@ -29,7 +29,7 @@ jQuery.fn.extend({
this
[
i
].
style
.
display
=
old
||
""
;
this
[
i
].
style
.
display
=
old
||
""
;
if
(
jQuery
.
css
(
this
[
i
],
"display"
)
===
"none"
)
{
if
(
jQuery
.
css
(
this
[
i
],
"display"
)
===
"none"
)
{
var
nodeName
=
this
[
i
].
nodeName
,
display
;
var
nodeName
=
this
[
i
].
nodeName
,
display
;
if
(
elemdisplay
[
nodeName
]
)
{
if
(
elemdisplay
[
nodeName
]
)
{
...
@@ -71,7 +71,7 @@ jQuery.fn.extend({
...
@@ -71,7 +71,7 @@ jQuery.fn.extend({
for
(
var
i
=
0
,
l
=
this
.
length
;
i
<
l
;
i
++
)
{
for
(
var
i
=
0
,
l
=
this
.
length
;
i
<
l
;
i
++
)
{
var
old
=
jQuery
.
data
(
this
[
i
],
"olddisplay"
);
var
old
=
jQuery
.
data
(
this
[
i
],
"olddisplay"
);
if
(
!
old
&&
old
!==
"none"
)
{
if
(
!
old
&&
old
!==
"none"
)
{
jQuery
.
data
(
this
[
i
],
"olddisplay"
,
jQuery
.
css
(
this
[
i
],
"display"
)
);
jQuery
.
data
(
this
[
i
],
"olddisplay"
,
jQuery
.
css
(
this
[
i
],
"display"
)
);
}
}
}
}
...
@@ -139,7 +139,7 @@ jQuery.fn.extend({
...
@@ -139,7 +139,7 @@ jQuery.fn.extend({
if
(
(
p
===
"height"
||
p
===
"width"
)
&&
this
.
style
)
{
if
(
(
p
===
"height"
||
p
===
"width"
)
&&
this
.
style
)
{
// Store display property
// Store display property
opt
.
display
=
jQuery
.
css
(
this
,
"display"
)
;
opt
.
display
=
this
.
style
.
display
;
// Make sure that nothing sneaks out
// Make sure that nothing sneaks out
opt
.
overflow
=
this
.
style
.
overflow
;
opt
.
overflow
=
this
.
style
.
overflow
;
...
@@ -316,13 +316,13 @@ jQuery.fx.prototype = {
...
@@ -316,13 +316,13 @@ jQuery.fx.prototype = {
},
},
// Get the current size
// Get the current size
cur
:
function
(
force
)
{
cur
:
function
()
{
if
(
this
.
elem
[
this
.
prop
]
!=
null
&&
(
!
this
.
elem
.
style
||
this
.
elem
.
style
[
this
.
prop
]
==
null
)
)
{
if
(
this
.
elem
[
this
.
prop
]
!=
null
&&
(
!
this
.
elem
.
style
||
this
.
elem
.
style
[
this
.
prop
]
==
null
)
)
{
return
this
.
elem
[
this
.
prop
];
return
this
.
elem
[
this
.
prop
];
}
}
var
r
=
parseFloat
(
jQuery
.
css
(
this
.
elem
,
this
.
prop
,
undefined
,
force
)
);
var
r
=
jQuery
.
css
(
this
.
elem
,
this
.
prop
);
return
r
&&
r
>
-
10000
?
r
:
parseFloat
(
jQuery
.
css
(
this
.
elem
,
this
.
prop
))
||
0
;
return
r
&&
r
>
-
10000
?
r
:
0
;
},
},
// Start an animation from one number to another
// Start an animation from one number to another
...
@@ -349,7 +349,7 @@ jQuery.fx.prototype = {
...
@@ -349,7 +349,7 @@ jQuery.fx.prototype = {
// Simple 'show' function
// Simple 'show' function
show
:
function
()
{
show
:
function
()
{
// Remember where we started, so that we can go back to it later
// Remember where we started, so that we can go back to it later
this
.
options
.
orig
[
this
.
prop
]
=
jQuery
.
css
(
this
.
elem
,
this
.
prop
,
undefined
,
false
);
this
.
options
.
orig
[
this
.
prop
]
=
jQuery
.
style
(
this
.
elem
,
this
.
prop
);
this
.
options
.
show
=
true
;
this
.
options
.
show
=
true
;
// Begin the animation
// Begin the animation
...
@@ -364,7 +364,7 @@ jQuery.fx.prototype = {
...
@@ -364,7 +364,7 @@ jQuery.fx.prototype = {
// Simple 'hide' function
// Simple 'hide' function
hide
:
function
()
{
hide
:
function
()
{
// Remember where we started, so that we can go back to it later
// Remember where we started, so that we can go back to it later
this
.
options
.
orig
[
this
.
prop
]
=
jQuery
.
css
(
this
.
elem
,
this
.
prop
,
undefined
,
false
);
this
.
options
.
orig
[
this
.
prop
]
=
jQuery
.
style
(
this
.
elem
,
this
.
prop
);
this
.
options
.
hide
=
true
;
this
.
options
.
hide
=
true
;
// Begin the animation
// Begin the animation
...
@@ -397,7 +397,7 @@ jQuery.fx.prototype = {
...
@@ -397,7 +397,7 @@ jQuery.fx.prototype = {
var
old
=
jQuery
.
data
(
this
.
elem
,
"olddisplay"
);
var
old
=
jQuery
.
data
(
this
.
elem
,
"olddisplay"
);
this
.
elem
.
style
.
display
=
old
?
old
:
this
.
options
.
display
;
this
.
elem
.
style
.
display
=
old
?
old
:
this
.
options
.
display
;
if
(
jQuery
.
css
(
this
.
elem
,
"display"
)
===
"none"
)
{
if
(
jQuery
.
css
(
this
.
elem
,
"display"
)
===
"none"
)
{
this
.
elem
.
style
.
display
=
"block"
;
this
.
elem
.
style
.
display
=
"block"
;
}
}
}
}
...
@@ -410,7 +410,7 @@ jQuery.fx.prototype = {
...
@@ -410,7 +410,7 @@ jQuery.fx.prototype = {
// Reset the properties, if the item has been hidden or shown
// Reset the properties, if the item has been hidden or shown
if
(
this
.
options
.
hide
||
this
.
options
.
show
)
{
if
(
this
.
options
.
hide
||
this
.
options
.
show
)
{
for
(
var
p
in
this
.
options
.
curAnim
)
{
for
(
var
p
in
this
.
options
.
curAnim
)
{
jQuery
.
css
(
this
.
elem
,
p
,
this
.
options
.
orig
[
p
]
);
jQuery
.
style
(
this
.
elem
,
p
,
this
.
options
.
orig
[
p
]
);
}
}
}
}
...
@@ -467,7 +467,7 @@ jQuery.extend( jQuery.fx, {
...
@@ -467,7 +467,7 @@ jQuery.extend( jQuery.fx, {
step
:
{
step
:
{
opacity
:
function
(
fx
)
{
opacity
:
function
(
fx
)
{
jQuery
.
css
(
fx
.
elem
,
"opacity"
,
fx
.
now
);
jQuery
.
style
(
fx
.
elem
,
"opacity"
,
fx
.
now
);
},
},
_default
:
function
(
fx
)
{
_default
:
function
(
fx
)
{
...
...
src/offset.js
View file @
37b607d2
...
@@ -105,7 +105,7 @@ if ( "getBoundingClientRect" in document.documentElement ) {
...
@@ -105,7 +105,7 @@ if ( "getBoundingClientRect" in document.documentElement ) {
jQuery
.
offset
=
{
jQuery
.
offset
=
{
initialize
:
function
()
{
initialize
:
function
()
{
var
body
=
document
.
body
,
container
=
document
.
createElement
(
"div"
),
innerDiv
,
checkDiv
,
table
,
td
,
bodyMarginTop
=
parseFloat
(
jQuery
.
css
(
body
,
"marginTop"
,
undefined
,
true
)
)
||
0
,
var
body
=
document
.
body
,
container
=
document
.
createElement
(
"div"
),
innerDiv
,
checkDiv
,
table
,
td
,
bodyMarginTop
=
parseFloat
(
jQuery
.
css
(
body
,
"marginTop"
)
)
||
0
,
html
=
"<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>"
;
html
=
"<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>"
;
jQuery
.
extend
(
container
.
style
,
{
position
:
"absolute"
,
top
:
0
,
left
:
0
,
margin
:
0
,
border
:
0
,
width
:
"1px"
,
height
:
"1px"
,
visibility
:
"hidden"
}
);
jQuery
.
extend
(
container
.
style
,
{
position
:
"absolute"
,
top
:
0
,
left
:
0
,
margin
:
0
,
border
:
0
,
width
:
"1px"
,
height
:
"1px"
,
visibility
:
"hidden"
}
);
...
@@ -144,8 +144,8 @@ jQuery.offset = {
...
@@ -144,8 +144,8 @@ jQuery.offset = {
jQuery
.
offset
.
initialize
();
jQuery
.
offset
.
initialize
();
if
(
jQuery
.
offset
.
doesNotIncludeMarginInBodyOffset
)
{
if
(
jQuery
.
offset
.
doesNotIncludeMarginInBodyOffset
)
{
top
+=
parseFloat
(
jQuery
.
css
(
body
,
"marginTop"
,
undefined
,
true
)
)
||
0
;
top
+=
parseFloat
(
jQuery
.
css
(
body
,
"marginTop"
)
)
||
0
;
left
+=
parseFloat
(
jQuery
.
css
(
body
,
"marginLeft"
,
undefined
,
true
)
)
||
0
;
left
+=
parseFloat
(
jQuery
.
css
(
body
,
"marginLeft"
)
)
||
0
;
}
}
return
{
top
:
top
,
left
:
left
};
return
{
top
:
top
,
left
:
left
};
...
@@ -161,8 +161,8 @@ jQuery.offset = {
...
@@ -161,8 +161,8 @@ jQuery.offset = {
var
curElem
=
jQuery
(
elem
),
var
curElem
=
jQuery
(
elem
),
curOffset
=
curElem
.
offset
(),
curOffset
=
curElem
.
offset
(),
curCSSTop
=
jQuery
.
css
(
elem
,
"top"
,
undefined
,
true
),
curCSSTop
=
jQuery
.
css
(
elem
,
"top"
),
curCSSLeft
=
jQuery
.
css
(
elem
,
"left"
,
undefined
,
true
),
curCSSLeft
=
jQuery
.
css
(
elem
,
"left"
),
calculatePosition
=
(
position
===
"absolute"
&&
jQuery
.
inArray
(
'auto'
,
[
curCSSTop
,
curCSSLeft
])
>
-
1
),
calculatePosition
=
(
position
===
"absolute"
&&
jQuery
.
inArray
(
'auto'
,
[
curCSSTop
,
curCSSLeft
])
>
-
1
),
props
=
{},
curPosition
=
{},
curTop
,
curLeft
;
props
=
{},
curPosition
=
{},
curTop
,
curLeft
;
...
@@ -212,12 +212,12 @@ jQuery.fn.extend({
...
@@ -212,12 +212,12 @@ jQuery.fn.extend({
// Subtract element margins
// Subtract element margins
// note: when an element has margin: auto the offsetLeft and marginLeft
// note: when an element has margin: auto the offsetLeft and marginLeft
// are the same in Safari causing offset.left to incorrectly be 0
// are the same in Safari causing offset.left to incorrectly be 0
offset
.
top
-=
parseFloat
(
jQuery
.
css
(
elem
,
"marginTop"
,
undefined
,
true
)
)
||
0
;
offset
.
top
-=
parseFloat
(
jQuery
.
css
(
elem
,
"marginTop"
)
)
||
0
;
offset
.
left
-=
parseFloat
(
jQuery
.
css
(
elem
,
"marginLeft"
,
undefined
,
true
)
)
||
0
;
offset
.
left
-=
parseFloat
(
jQuery
.
css
(
elem
,
"marginLeft"
)
)
||
0
;
// Add offsetParent borders
// Add offsetParent borders
parentOffset
.
top
+=
parseFloat
(
jQuery
.
css
(
offsetParent
[
0
],
"borderTopWidth"
,
undefined
,
true
)
)
||
0
;
parentOffset
.
top
+=
parseFloat
(
jQuery
.
css
(
offsetParent
[
0
],
"borderTopWidth"
)
)
||
0
;
parentOffset
.
left
+=
parseFloat
(
jQuery
.
css
(
offsetParent
[
0
],
"borderLeftWidth"
,
undefined
,
true
)
)
||
0
;
parentOffset
.
left
+=
parseFloat
(
jQuery
.
css
(
offsetParent
[
0
],
"borderLeftWidth"
)
)
||
0
;
// Subtract the two offsets
// Subtract the two offsets
return
{
return
{
...
...
test/unit/css.js
View file @
37b607d2
module
(
"css"
);
module
(
"css"
);
test
(
"css(String|Hash)"
,
function
()
{
test
(
"css(String|Hash)"
,
function
()
{
expect
(
30
);
expect
(
28
);
equals
(
jQuery
(
'#main'
).
css
(
"display"
),
'none'
,
'Check for css property "display"'
);
equals
(
jQuery
(
'#main'
).
css
(
"display"
),
'none'
,
'Check for css property "display"'
);
...
@@ -19,10 +19,6 @@ test("css(String|Hash)", function() {
...
@@ -19,10 +19,6 @@ test("css(String|Hash)", function() {
equals
(
parseFloat
(
jQuery
(
'#nothiddendiv'
).
css
(
'width'
)),
width
,
'Test negative width ignored'
)
equals
(
parseFloat
(
jQuery
(
'#nothiddendiv'
).
css
(
'width'
)),
width
,
'Test negative width ignored'
)
equals
(
parseFloat
(
jQuery
(
'#nothiddendiv'
).
css
(
'height'
)),
height
,
'Test negative height ignored'
)
equals
(
parseFloat
(
jQuery
(
'#nothiddendiv'
).
css
(
'height'
)),
height
,
'Test negative height ignored'
)
jQuery
(
'#floatTest'
).
css
({
styleFloat
:
'right'
});
equals
(
jQuery
(
'#floatTest'
).
css
(
'styleFloat'
),
'right'
,
'Modified CSS float using "styleFloat": Assert float is right'
);
jQuery
(
'#floatTest'
).
css
({
cssFloat
:
'left'
});
equals
(
jQuery
(
'#floatTest'
).
css
(
'cssFloat'
),
'left'
,
'Modified CSS float using "cssFloat": Assert float is left'
);
jQuery
(
'#floatTest'
).
css
({
'float'
:
'right'
});
jQuery
(
'#floatTest'
).
css
({
'float'
:
'right'
});
equals
(
jQuery
(
'#floatTest'
).
css
(
'float'
),
'right'
,
'Modified CSS float using "float": Assert float is right'
);
equals
(
jQuery
(
'#floatTest'
).
css
(
'float'
),
'right'
,
'Modified CSS float using "float": Assert float is right'
);
jQuery
(
'#floatTest'
).
css
({
'font-size'
:
'30px'
});
jQuery
(
'#floatTest'
).
css
({
'font-size'
:
'30px'
});
...
@@ -65,7 +61,7 @@ test("css(String|Hash)", function() {
...
@@ -65,7 +61,7 @@ test("css(String|Hash)", function() {
});
});
test
(
"css(String, Object)"
,
function
()
{
test
(
"css(String, Object)"
,
function
()
{
expect
(
21
);
expect
(
19
);
ok
(
jQuery
(
'#nothiddendiv'
).
is
(
':visible'
),
'Modifying CSS display: Assert element is visible'
);
ok
(
jQuery
(
'#nothiddendiv'
).
is
(
':visible'
),
'Modifying CSS display: Assert element is visible'
);
jQuery
(
'#nothiddendiv'
).
css
(
"display"
,
'none'
);
jQuery
(
'#nothiddendiv'
).
css
(
"display"
,
'none'
);
ok
(
!
jQuery
(
'#nothiddendiv'
).
is
(
':visible'
),
'Modified CSS display: Assert element is hidden'
);
ok
(
!
jQuery
(
'#nothiddendiv'
).
is
(
':visible'
),
'Modified CSS display: Assert element is hidden'
);
...
@@ -75,10 +71,6 @@ test("css(String, Object)", function() {
...
@@ -75,10 +71,6 @@ test("css(String, Object)", function() {
jQuery
(
"#nothiddendiv"
).
css
(
"top"
,
"-1em"
);
jQuery
(
"#nothiddendiv"
).
css
(
"top"
,
"-1em"
);
ok
(
jQuery
(
"#nothiddendiv"
).
css
(
"top"
),
-
16
,
"Check negative number in EMs."
);
ok
(
jQuery
(
"#nothiddendiv"
).
css
(
"top"
),
-
16
,
"Check negative number in EMs."
);
jQuery
(
'#floatTest'
).
css
(
'styleFloat'
,
'left'
);
equals
(
jQuery
(
'#floatTest'
).
css
(
'styleFloat'
),
'left'
,
'Modified CSS float using "styleFloat": Assert float is left'
);
jQuery
(
'#floatTest'
).
css
(
'cssFloat'
,
'right'
);
equals
(
jQuery
(
'#floatTest'
).
css
(
'cssFloat'
),
'right'
,
'Modified CSS float using "cssFloat": Assert float is right'
);
jQuery
(
'#floatTest'
).
css
(
'float'
,
'left'
);
jQuery
(
'#floatTest'
).
css
(
'float'
,
'left'
);
equals
(
jQuery
(
'#floatTest'
).
css
(
'float'
),
'left'
,
'Modified CSS float using "float": Assert float is left'
);
equals
(
jQuery
(
'#floatTest'
).
css
(
'float'
),
'left'
,
'Modified CSS float using "float": Assert float is left'
);
jQuery
(
'#floatTest'
).
css
(
'font-size'
,
'20px'
);
jQuery
(
'#floatTest'
).
css
(
'font-size'
,
'20px'
);
...
...
test/unit/effects.js
View file @
37b607d2
...
@@ -512,9 +512,9 @@ jQuery.each( {
...
@@ -512,9 +512,9 @@ jQuery.each( {
}
}
if
(
t_h
==
"show"
)
{
if
(
t_h
==
"show"
)
{
var
old_h
=
jQuery
.
css
(
this
,
"height"
,
undefined
,
true
);
var
old_h
=
jQuery
.
css
(
this
,
"height"
);
jQuery
(
this
).
append
(
"<br/>Some more text<br/>and some more..."
);
jQuery
(
this
).
append
(
"<br/>Some more text<br/>and some more..."
);
notEqual
(
jQuery
.
css
(
this
,
"height"
,
undefined
,
true
),
old_h
,
"Make sure height is auto."
);
notEqual
(
jQuery
.
css
(
this
,
"height"
),
old_h
,
"Make sure height is auto."
);
}
}
start
();
start
();
...
@@ -532,7 +532,7 @@ jQuery.fn.saveState = function(){
...
@@ -532,7 +532,7 @@ jQuery.fn.saveState = function(){
var
self
=
this
;
var
self
=
this
;
self
.
save
=
{};
self
.
save
=
{};
jQuery
.
each
(
check
,
function
(
i
,
c
){
jQuery
.
each
(
check
,
function
(
i
,
c
){
self
.
save
[
c
]
=
jQuery
.
css
(
self
,
c
);
self
.
save
[
c
]
=
self
.
style
[
c
]
||
jQuery
.
css
(
self
,
c
);
});
});
});
});
};
};
...
@@ -540,8 +540,8 @@ jQuery.fn.saveState = function(){
...
@@ -540,8 +540,8 @@ jQuery.fn.saveState = function(){
jQuery
.
checkState
=
function
(){
jQuery
.
checkState
=
function
(){
var
self
=
this
;
var
self
=
this
;
jQuery
.
each
(
this
.
save
,
function
(
c
,
v
){
jQuery
.
each
(
this
.
save
,
function
(
c
,
v
){
var
cur
=
jQuery
.
css
(
self
,
c
);
var
cur
=
self
.
style
[
c
]
||
jQuery
.
css
(
self
,
c
);
equals
(
v
,
cur
,
"Make sure that "
+
c
+
" is reset (Old: "
+
v
+
" Cur: "
+
cur
+
")"
);
equals
(
cur
,
v
,
"Make sure that "
+
c
+
" is reset (Old: "
+
v
+
" Cur: "
+
cur
+
")"
);
});
});
start
();
start
();
}
}
...
...
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