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),
|
||||
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
|
||||
|
|
|
@ -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>
|
||||
<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>
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue