IE没有观察偏移位置

时间:2010-10-24 17:45:08

标签: jquery

我刚注意到我的新脚本有问题,即7和8 re:偏移和位置。

在现代浏览器中一切正常,但我无法解释IE拒绝遵守我指定的偏移位置的原因..?

Jquery:

$(document).ready(function() {

$("#%id%").css("margin" , 0);
var position = $("#%id%").offset();


$("<div/>", {
  "class": "doosuperoverlay"
})
.prependTo("body")
.delay(%id=delay%000)
.fadeOut(%id=fadeout%000);



var orgStackWidth = $("#%id%").width();
var tempClone = $("#%id%").clone();
$(tempClone).css({
"width" : orgStackWidth + "px",
"text-align" : "left"
});
$(tempClone).appendTo(".doosuperoverlay").css(position)
.delay(%id=delay%000)
.fadeOut(%id=fadeout%000);


});

有一个有效的演示page setup here

解决:答案在于脚本的这一部分:

var orgStackWidth = $("#%id%").width();
var tempClone = $("#%id%").clone();
$(tempClone).css({
"position" : "relative",
"width" : orgStackWidth + "px",
"text-align" : "left"
});

添加位置:相对于临时克隆排序即发出。谢谢大家。

1 个答案:

答案 0 :(得分:0)

offset()返回一个包含top和left属性的对象。

所以替换

$(tempClone).prependTo(".doosuperoverlay").css(position)
.animate({opacity: 1.0}, %id=delay%000)
.fadeOut(%id=fadeout%000);

$(tempClone).prependTo(".doosuperoverlay").css({top: position.top, left: position.left})
.animate({opacity: 1.0}, %id=delay%000)
.fadeOut(%id=fadeout%000);

认为这会奏效。