2010-10-24 56 views
0

我刚刚注意到我的新脚本在ie 7和8中存在问题:偏移和位置。IE不观察偏移位置

在现代浏览器中一切正常,但我不能说明原因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" 
}); 

添加位置:相对于答案在脚本的这部分铺设临时克隆排序即发出。谢谢大家。

回答

0

offset()返回一个包含顶部和左侧属性的对象。

所以用

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

更换

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

认为,这是要去工作。

+0

您不需要这样做,对象已经具有它需要的属性,不需要将它包装在* another *对象中。 – 2010-10-24 17:53:31

+0

尼克,蒂姆的建议同样适用,但没有解决问题。谢谢蒂姆。 – Doobox 2010-10-24 18:08:35