mirror of
https://github.com/jquery/jquery.git
synced 2024-11-23 02:54:22 +00:00
Offset setter for fixed position elements in Webkit. Fixes #8316.
This commit is contained in:
parent
1912ded3ee
commit
e8f4629b92
@ -181,10 +181,10 @@ 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" && 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 absolute
|
// need to be able to calculate position if either top or left is auto and position is either absolute or fixed
|
||||||
if ( calculatePosition ) {
|
if ( calculatePosition ) {
|
||||||
curPosition = curElem.position();
|
curPosition = curElem.position();
|
||||||
}
|
}
|
||||||
|
@ -422,6 +422,21 @@ 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 ){
|
||||||
|
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() {
|
test(name, function() {
|
||||||
@ -447,7 +462,7 @@ function testoffset(name, fn) {
|
|||||||
function loadFixture() {
|
function loadFixture() {
|
||||||
var src = './data/offset/' + name + '.html?' + parseInt( Math.random()*1000, 10 ),
|
var src = './data/offset/' + name + '.html?' + parseInt( Math.random()*1000, 10 ),
|
||||||
iframe = jQuery('<iframe />').css({
|
iframe = jQuery('<iframe />').css({
|
||||||
width: 500, height: 500, position: 'absolute', top: -600, left: -600, visiblity: 'hidden'
|
width: 500, height: 500, position: 'absolute', top: -600, left: -600, visibility: 'hidden'
|
||||||
}).appendTo('body')[0];
|
}).appendTo('body')[0];
|
||||||
iframe.contentWindow.location = src;
|
iframe.contentWindow.location = src;
|
||||||
return iframe;
|
return iframe;
|
||||||
|
Loading…
Reference in New Issue
Block a user