Merge branch 'bug_8316' of https://github.com/timmywil/jquery into timmywil-bug_8316
This commit is contained in:
commit
ff06d411d2
|
@ -37,8 +37,8 @@ if ( "getBoundingClientRect" in document.documentElement ) {
|
||||||
win = getWindow(doc),
|
win = getWindow(doc),
|
||||||
clientTop = docElem.clientTop || body.clientTop || 0,
|
clientTop = docElem.clientTop || body.clientTop || 0,
|
||||||
clientLeft = docElem.clientLeft || body.clientLeft || 0,
|
clientLeft = docElem.clientLeft || body.clientLeft || 0,
|
||||||
scrollTop = (win.pageYOffset || jQuery.support.boxModel && docElem.scrollTop || body.scrollTop ),
|
scrollTop = win.pageYOffset || jQuery.support.boxModel && docElem.scrollTop || body.scrollTop,
|
||||||
scrollLeft = (win.pageXOffset || jQuery.support.boxModel && docElem.scrollLeft || body.scrollLeft),
|
scrollLeft = win.pageXOffset || jQuery.support.boxModel && docElem.scrollLeft || body.scrollLeft,
|
||||||
top = box.top + scrollTop - clientTop,
|
top = box.top + scrollTop - clientTop,
|
||||||
left = box.left + scrollLeft - clientLeft;
|
left = box.left + scrollLeft - clientLeft;
|
||||||
|
|
||||||
|
@ -180,7 +180,7 @@ jQuery.offset = {
|
||||||
curOffset = curElem.offset(),
|
curOffset = curElem.offset(),
|
||||||
curCSSTop = jQuery.css( elem, "top" ),
|
curCSSTop = jQuery.css( elem, "top" ),
|
||||||
curCSSLeft = jQuery.css( elem, "left" ),
|
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;
|
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
|
// need to be able to calculate position if either top or left is auto and position is either absolute or fixed
|
||||||
|
|
|
@ -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>
|
|
|
@ -35,6 +35,7 @@
|
||||||
<body>
|
<body>
|
||||||
<div id="fixed-1" class="fixed"></div>
|
<div id="fixed-1" class="fixed"></div>
|
||||||
<div id="fixed-2" 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="forceScroll"></div>
|
||||||
<div id="marker"></div>
|
<div id="marker"></div>
|
||||||
<p class="instructions">Click the white box to move the marker to it.</p>
|
<p class="instructions">Click the white box to move the marker to it.</p>
|
||||||
|
|
|
@ -265,7 +265,7 @@ testoffset("static", function( jQuery ) {
|
||||||
});
|
});
|
||||||
|
|
||||||
testoffset("fixed", function( jQuery ) {
|
testoffset("fixed", function( jQuery ) {
|
||||||
expect(28);
|
expect(30);
|
||||||
|
|
||||||
jQuery.offset.initialize();
|
jQuery.offset.initialize();
|
||||||
|
|
||||||
|
@ -320,6 +320,17 @@ testoffset("fixed", function( jQuery ) {
|
||||||
ok( true, 'Fixed position is not supported' );
|
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 ) {
|
testoffset("table", function( jQuery ) {
|
||||||
|
@ -422,22 +433,7 @@ test("offsetParent", function(){
|
||||||
equals( div[1], jQuery("#nothiddendiv")[0], "The div is the offsetParent." );
|
equals( div[1], jQuery("#nothiddendiv")[0], "The div is the offsetParent." );
|
||||||
});
|
});
|
||||||
|
|
||||||
testoffset("bug_8316", function( jQuery ){
|
function testoffset( name, fn ) {
|
||||||
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) {
|
|
||||||
|
|
||||||
test(name, function() {
|
test(name, function() {
|
||||||
// pause execution for now
|
// pause execution for now
|
||||||
|
|
Loading…
Reference in a new issue