如何使用jQuery .offset
方法获取和设置元素的位置?
假设我有一个div layer1
和另一个layer2
。如何获得layer1
的位置并将相同的位置设置为layer2
?
答案 0 :(得分:187)
//Get
var p = $("#elementId");
var offset = p.offset();
//set
$("#secondElementId").offset({ top: offset.top, left: offset.left});
答案 1 :(得分:34)
我推荐另一种选择。 jQuery UI有一个新的位置功能,允许您相对于彼此定位元素。有关完整的文档和演示,请参阅:http://jqueryui.com/demos/position/#option-offset。
以下是使用位置功能定位元素的一种方法:
var options = {
"my": "top left",
"at": "top left",
"of": ".layer1"
};
$(".layer2").position(options);
答案 2 :(得分:15)
这是可行的,但您必须知道使用offset()
设置元素相对于文档的位置:
$('.layer1').offset( $('.layer2').offset() );
答案 3 :(得分:0)
这是一个选项。这仅适用于x坐标。
var div1Pos = $("#div1").offset();
var div1X = div1Pos.left;
$('#div2').css({left: div1X});
答案 4 :(得分:0)
var redBox = $(".post");
var greenBox = $(".post1");
var offset = redBox.offset();
$(".post1").css({'left': +offset.left});
$(".post1").html("Left :" +offset.left);