Commit 560c178c authored by Dave Methvin's avatar Dave Methvin

Fix #12536. Start at .offset() 0,0 if no getBoundingClientRect.

This lets us still add the other offset components to the number so they're less wrong. Affects BlackBerry 5 and iOS 3, everyone else has gBCR.
parent b0a352bf
...@@ -9,7 +9,8 @@ jQuery.fn.offset = function( options ) { ...@@ -9,7 +9,8 @@ jQuery.fn.offset = function( options ) {
}); });
} }
var box, docElem, body, win, clientTop, clientLeft, scrollTop, scrollLeft, top, left, var docElem, body, win, clientTop, clientLeft, scrollTop, scrollLeft,
box = { top: 0, left: 0 },
elem = this[ 0 ], elem = this[ 0 ],
doc = elem && elem.ownerDocument; doc = elem && elem.ownerDocument;
...@@ -23,21 +24,25 @@ jQuery.fn.offset = function( options ) { ...@@ -23,21 +24,25 @@ jQuery.fn.offset = function( options ) {
docElem = doc.documentElement; docElem = doc.documentElement;
// Make sure we have the API and we're it's not a disconnected DOM node // Make sure it's not a disconnected DOM node
if ( typeof elem.getBoundingClientRect === "undefined" || !jQuery.contains( docElem, elem ) ) { if ( !jQuery.contains( docElem, elem ) ) {
return { top: 0, left: 0 }; return box;
} }
box = elem.getBoundingClientRect(); // If we don't have gBCR, just use 0,0 rather than error
// BlackBerry 5, iOS 3 (original iPhone)
if ( typeof elem.getBoundingClientRect !== "undefined" ) {
box = elem.getBoundingClientRect();
}
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 || docElem.scrollTop; scrollTop = win.pageYOffset || docElem.scrollTop;
scrollLeft = win.pageXOffset || docElem.scrollLeft; scrollLeft = win.pageXOffset || docElem.scrollLeft;
top = box.top + scrollTop - clientTop; return {
left = box.left + scrollLeft - clientLeft; top: box.top + scrollTop - clientTop,
left: box.left + scrollLeft - clientLeft
return { top: top, left: left }; };
}; };
jQuery.offset = { jQuery.offset = {
......
Subproject commit 9fb909e71fe0e152f80bf04198cc2b2098756c81 Subproject commit 0a488ce5fa817bfa371658fc6cf0bd3214c5f3d5
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment