aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Methvin <dave.methvin@gmail.com>2011-03-31 10:25:59 -0400
committerDave Methvin <dave.methvin@gmail.com>2011-03-31 10:25:59 -0400
commitff06d411d2569a3464fee7dda0580ee60f834b70 (patch)
treed31c1187e7c6000c30ebb31cca13c82717d3f739
parent459bd7f89d112dd6aec97bfd1923bb7d4337243c (diff)
parentf9cc5597a47e8a95b13fa5599e94c20fe80903e0 (diff)
downloadjquery-ff06d411d2569a3464fee7dda0580ee60f834b70.tar.gz
jquery-ff06d411d2569a3464fee7dda0580ee60f834b70.zip
Merge branch 'bug_8316' of https://github.com/timmywil/jquery into timmywil-bug_8316
-rw-r--r--src/offset.js6
-rw-r--r--test/data/offset/bug_8316.html30
-rw-r--r--test/data/offset/fixed.html1
-rw-r--r--test/unit/offset.js30
4 files changed, 17 insertions, 50 deletions
diff --git a/src/offset.js b/src/offset.js
index 972278c8d..a0cd7a156 100644
--- a/src/offset.js
+++ b/src/offset.js
@@ -37,8 +37,8 @@ if ( "getBoundingClientRect" in document.documentElement ) {
win = getWindow(doc),
clientTop = docElem.clientTop || body.clientTop || 0,
clientLeft = docElem.clientLeft || body.clientLeft || 0,
- scrollTop = (win.pageYOffset || jQuery.support.boxModel && docElem.scrollTop || body.scrollTop ),
- scrollLeft = (win.pageXOffset || jQuery.support.boxModel && docElem.scrollLeft || body.scrollLeft),
+ scrollTop = win.pageYOffset || jQuery.support.boxModel && docElem.scrollTop || body.scrollTop,
+ scrollLeft = win.pageXOffset || jQuery.support.boxModel && docElem.scrollLeft || body.scrollLeft,
top = box.top + scrollTop - clientTop,
left = box.left + scrollLeft - clientLeft;
@@ -180,7 +180,7 @@ jQuery.offset = {
curOffset = curElem.offset(),
curCSSTop = jQuery.css( elem, "top" ),
curCSSLeft = jQuery.css( elem, "left" ),
- calculatePosition = ((position === "absolute" || position === "fixed") && jQuery.inArray('auto', [curCSSTop, curCSSLeft]) > -1),
+ calculatePosition = (position === "absolute" || position === "fixed") && jQuery.inArray('auto', [curCSSTop, curCSSLeft]) > -1,
props = {}, curPosition = {}, curTop, curLeft;
// need to be able to calculate position if either top or left is auto and position is either absolute or fixed
diff --git a/test/data/offset/bug_8316.html b/test/data/offset/bug_8316.html
deleted file mode 100644
index ce32a2826..000000000
--- a/test/data/offset/bug_8316.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html>
- <head>
- <meta http-equiv="Content-type" content="text/html; charset=utf-8">
- <title>bug_8316</title>
- <style type="text/css" media="screen">
- #elem {
- background-color: #000;
- height: 100px;
- width: 100px;
- position: fixed;
- }
- </style>
- <script src="../../../src/core.js"></script>
- <script src="../../../src/deferred.js"></script>
- <script src="../../../src/support.js"></script>
- <script src="../../../src/sizzle/sizzle.js"></script>
- <script src="../../../src/sizzle-jquery.js"></script>
- <script src="../../../src/traversing.js"></script>
- <script src="../../../src/data.js"></script>
- <script src="../../../src/event.js"></script>
- <script src="../../../src/css.js"></script>
- <script src="../../../src/offset.js"></script>
- </head>
- <body>
- <p> Some foo text </p>
- <div id="elem"></div>
- </body>
-</html>
diff --git a/test/data/offset/fixed.html b/test/data/offset/fixed.html
index 3181718da..81ba4ca7d 100644
--- a/test/data/offset/fixed.html
+++ b/test/data/offset/fixed.html
@@ -35,6 +35,7 @@
<body>
<div id="fixed-1" class="fixed"></div>
<div id="fixed-2" class="fixed"></div>
+ <div id="fixed-no-top-left" class="fixed"></div>
<div id="forceScroll"></div>
<div id="marker"></div>
<p class="instructions">Click the white box to move the marker to it.</p>
diff --git a/test/unit/offset.js b/test/unit/offset.js
index b7f72a0cd..ae0518849 100644
--- a/test/unit/offset.js
+++ b/test/unit/offset.js
@@ -265,7 +265,7 @@ testoffset("static", function( jQuery ) {
});
testoffset("fixed", function( jQuery ) {
- expect(28);
+ expect(30);
jQuery.offset.initialize();
@@ -320,6 +320,17 @@ testoffset("fixed", function( jQuery ) {
ok( true, 'Fixed position is not supported' );
}
});
+
+ // Bug 8316
+ var $noTopLeft = jQuery('#fixed-no-top-left');
+ if ( jQuery.offset.supportsFixedPosition ) {
+ equals( $noTopLeft.offset().top, 1007, "Check offset top for fixed element with no top set" );
+ equals( $noTopLeft.offset().left, 1007, "Check offset left for fixed element with no left set" );
+ } else {
+ // need to have same number of assertions
+ ok( true, 'Fixed position is not supported' );
+ ok( true, 'Fixed position is not supported' );
+ }
});
testoffset("table", function( jQuery ) {
@@ -422,22 +433,7 @@ test("offsetParent", function(){
equals( div[1], jQuery("#nothiddendiv")[0], "The div is the offsetParent." );
});
-testoffset("bug_8316", function( jQuery ){
- expect(2);
-
- var tests = [
- { id:'#elem', top: 100, left: 100 }
- ];
-
- jQuery.each(tests, function(){
- var el = jQuery(this.id);
- el.offset({ top: this.top, left: this.left});
- equals(Math.round(el.offset().top), this.top);
- equals(Math.round(el.offset().left), this.left);
- });
-});
-
-function testoffset(name, fn) {
+function testoffset( name, fn ) {
test(name, function() {
// pause execution for now