是否可以将DIV位置从绝对位置更改为相对位置(以及从相对位置更改为绝对位置)?DIV应该保持在相同的位置。
发布于 2010-03-30 22:07:42
您可以使用以下命令更改该属性
$(object).css({position: 'absolute'});例如:
您可以使用jQuery的方法.position()或.offset()来设置"top“和"left”css属性,这样您的对象应该停留在它的位置,而不是->的绝对位置。
我不认为反之亦然。
演示代码:http://jsbin.com/uvoka
发布于 2010-03-30 22:30:19
由于注释中的格式设置不起作用,因此我将在此处发布解决方案
$(object).css({position: 'absolute',top: dy, left:dx});
// dy, dx - some coordinates
$(object).css({position: 'relative'});不起作用:更改为相对后的元素位置不同。
但当我存储offset并在更改为relative后再次设置它时,位置是相同的:
$(object).css({position: 'absolute',top: dy, left:dx});
var x = $(object).offset().left;
var y = $(object).offset().top;
$(object).css({position: 'relative'});
$(object).offset({ top: y, left: x }); 发布于 2011-02-25 00:57:43
如果您确实想要获取一个元素的总顶部偏移量,该元素是具有绝对和相对位置的元素的子元素,您可以使用此函数
function calcTotalOffsetTop(elm)
{
var totalOffsetTop = 0,
curr = elm;
while( curr.parent().is(':not(body)') )
{
curr = curr.parent();
totalOffsetTop += curr[0].offsetTop;
}
return totalOffsetTop;
}这是上面plodder给出的解决方案的基本代码。
https://stackoverflow.com/questions/2545775
复制相似问题