使用jQuery .offset()获取和设置位置

如何使用jQuery .offset方法获取和设置元素的位置?

比方说,我有一个div layer1和另一个layer2 。 如何获取layer1的位置并将其设置为与layer2相同的位置?

 //Get var p = $("#elementId"); var offset = p.offset(); //set $("#secondElementId").offset({ top: offset.top, left: offset.left}); 

我build议另一个选项。 jQuery UI有一个新的位置function,允许您相对于彼此定位元素。 有关完整的文档和演示,请参阅: http : //jqueryui.com/demos/position/#option-offset 。

以下是使用位置特征定位元素的一种方法:

 var options = { "my": "top left", "at": "top left", "of": ".layer1" }; $(".layer2").position(options); 

这是可行的,但你必须知道使用offset()设置元素相对于文档的位置:

 $('.layer1').offset( $('.layer2').offset() ); 

这是一个选项。 这只是x坐标。

 var div1Pos = $("#div1").offset(); var div1X = div1Pos.left; $('#div2').css({left: div1X}); 
 var redBox = $(".post"); var greenBox = $(".post1"); var offset = redBox.offset(); $(".post1").css({'left': +offset.left}); $(".post1").html("Left :" +offset.left); 

http://jsfiddle.net/va836/159/