Offset: report offset for 0 sized elements

Fixes gh-3267
Closes gh-3367
This commit is contained in:
Jason Bedard
2016-12-12 22:32:11 -08:00
committed by GitHub
parent 4e50967725
commit 1777899a74
2 changed files with 38 additions and 15 deletions

View File

@@ -42,7 +42,7 @@ QUnit.test( "empty set", function( assert ) {
} );
QUnit.test( "disconnected element", function( assert ) {
assert.expect( 2 );
assert.expect( 3 );
var result = jQuery( document.createElement( "div" ) ).offset();
@@ -51,10 +51,11 @@ QUnit.test( "disconnected element", function( assert ) {
// valid input, but will return zeros for back-compat
assert.equal( result.top, 0, "Retrieving offset on disconnected elements returns zeros (gh-2310)" );
assert.equal( result.left, 0, "Retrieving offset on disconnected elements returns zeros (gh-2310)" );
assert.equal( Object.keys( result ).length, 2, "Retrieving offset on disconnected elements returns offset object (gh-3167)" );
} );
QUnit.test( "hidden (display: none) element", function( assert ) {
assert.expect( 2 );
assert.expect( 3 );
var node = jQuery( "<div style='display: none' />" ).appendTo( "#qunit-fixture" ),
result = node.offset();
@@ -66,6 +67,33 @@ QUnit.test( "hidden (display: none) element", function( assert ) {
// valid input, but will return zeros for back-compat
assert.equal( result.top, 0, "Retrieving offset on hidden elements returns zeros (gh-2310)" );
assert.equal( result.left, 0, "Retrieving offset on hidden elements returns zeros (gh-2310)" );
assert.equal( Object.keys( result ).length, 2, "Retrieving offset on hidden elements returns offset object (gh-3167)" );
} );
QUnit.test( "0 sized element", function( assert ) {
assert.expect( 3 );
var node = jQuery( "<div style='margin: 5px; width: 0; height: 0' />" ).appendTo( "#qunit-fixture" ),
result = node.offset();
node.remove();
assert.notEqual( result.top, 0, "Retrieving offset on 0 sized elements (gh-3167)" );
assert.notEqual( result.left, 0, "Retrieving offset on 0 sized elements (gh-3167)" );
assert.equal( Object.keys( result ).length, 2, "Retrieving offset on 0 sized elements returns offset object (gh-3167)" );
} );
QUnit.test( "hidden (visibility: hidden) element", function( assert ) {
assert.expect( 3 );
var node = jQuery( "<div style='margin: 5px; visibility: hidden' />" ).appendTo( "#qunit-fixture" ),
result = node.offset();
node.remove();
assert.notEqual( result.top, 0, "Retrieving offset on visibility:hidden elements (gh-3167)" );
assert.notEqual( result.left, 0, "Retrieving offset on visibility:hidden elements (gh-3167)" );
assert.equal( Object.keys( result ).length, 2, "Retrieving offset on visibility:hidden elements returns offset object (gh-3167)" );
} );
testIframe( "absolute", "offset/absolute.html", function( assert, $, iframe ) {