From 49833f7795d665ff1d543c4f71f29fca95b567e9 Mon Sep 17 00:00:00 2001 From: Oleg Gaidarenko Date: Tue, 9 Feb 2016 00:17:25 +0300 Subject: [PATCH] Revert "Offset: account for scroll when calculating position" This reverts commit 2d715940b9b6fdeed005cd006c8bf63951cf7fb2. This commit provoked new issues: gh-2836, gh-2828. At the meeting, we decided to revert offending commit (in all three branches - 2.2-stable, 1.12-stable and master) and tackle this issue in 3.x. Fixes gh-2828 --- src/offset.js | 7 ++----- test/unit/offset.js | 14 ++------------ 2 files changed, 4 insertions(+), 17 deletions(-) diff --git a/src/offset.js b/src/offset.js index f7ef79c3c..365041391 100644 --- a/src/offset.js +++ b/src/offset.js @@ -144,11 +144,8 @@ jQuery.fn.extend( { } // Add offsetParent borders - // Subtract offsetParent scroll positions - parentOffset.top += jQuery.css( offsetParent[ 0 ], "borderTopWidth", true ) - - offsetParent.scrollTop(); - parentOffset.left += jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true ) - - offsetParent.scrollLeft(); + parentOffset.top += jQuery.css( offsetParent[ 0 ], "borderTopWidth", true ); + parentOffset.left += jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true ); } // Subtract parent offsets and element margins diff --git a/test/unit/offset.js b/test/unit/offset.js index a0f253b4e..823ccd7d2 100644 --- a/test/unit/offset.js +++ b/test/unit/offset.js @@ -406,7 +406,7 @@ testIframe( "offset/table", "table", function( $, window, document, assert ) { } ); testIframe( "offset/scroll", "scroll", function( $, win, doc, assert ) { - assert.expect( 30 ); + assert.expect( 24 ); assert.equal( $( "#scroll-1" ).offset().top, 7, "jQuery('#scroll-1').offset().top" ); assert.equal( $( "#scroll-1" ).offset().left, 7, "jQuery('#scroll-1').offset().left" ); @@ -462,17 +462,6 @@ testIframe( "offset/scroll", "scroll", function( $, win, doc, assert ) { assert.notEqual( $().scrollLeft( null ), null, "jQuery().scrollLeft(null) testing setter on empty jquery object" ); assert.strictEqual( $().scrollTop(), undefined, "jQuery().scrollTop() testing getter on empty jquery object" ); assert.strictEqual( $().scrollLeft(), undefined, "jQuery().scrollLeft() testing getter on empty jquery object" ); - - // Tests position after parent scrolling (#15239) - $( "#scroll-1" ).scrollTop( 0 ); - $( "#scroll-1" ).scrollLeft( 0 ); - assert.equal( $( "#scroll-1-1" ).position().top, 6, "jQuery('#scroll-1-1').position().top unaffected by parent scrolling" ); - assert.equal( $( "#scroll-1-1" ).position().left, 6, "jQuery('#scroll-1-1').position().left unaffected by parent scrolling" ); - - $( "#scroll-1" ).scrollTop( 5 ); - $( "#scroll-1" ).scrollLeft( 5 ); - assert.equal( $( "#scroll-1-1" ).position().top, 6, "jQuery('#scroll-1-1').position().top unaffected by parent scrolling" ); - assert.equal( $( "#scroll-1-1" ).position().left, 6, "jQuery('#scroll-1-1').position().left unaffected by parent scrolling" ); } ); testIframe( "offset/body", "body", function( $, window, document, assert ) { @@ -486,6 +475,7 @@ testIframe( "offset/body", "body", function( $, window, document, assert ) { QUnit.test( "chaining", function( assert ) { assert.expect( 3 ); + var coords = { "top": 1, "left": 1 }; assert.equal( jQuery( "#absolute-1" ).offset( coords ).jquery, jQuery.fn.jquery, "offset(coords) returns jQuery object" ); assert.equal( jQuery( "#non-existent" ).offset( coords ).jquery, jQuery.fn.jquery, "offset(coords) with empty jQuery set returns jQuery object" );