diff options
author | Dave Methvin <dave.methvin@gmail.com> | 2011-03-31 10:25:59 -0400 |
---|---|---|
committer | Dave Methvin <dave.methvin@gmail.com> | 2011-03-31 10:25:59 -0400 |
commit | ff06d411d2569a3464fee7dda0580ee60f834b70 (patch) | |
tree | d31c1187e7c6000c30ebb31cca13c82717d3f739 | |
parent | 459bd7f89d112dd6aec97bfd1923bb7d4337243c (diff) | |
parent | f9cc5597a47e8a95b13fa5599e94c20fe80903e0 (diff) | |
download | jquery-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.js | 6 | ||||
-rw-r--r-- | test/data/offset/bug_8316.html | 30 | ||||
-rw-r--r-- | test/data/offset/fixed.html | 1 | ||||
-rw-r--r-- | test/unit/offset.js | 30 |
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 |