2010-10-24 6 views
0

Je viens de remarquer que mon nouveau script a un problème en ie 7 et 8 re: décalage et position.IE n'observant pas la position de décalage

Tout fonctionne très bien dans les navigateurs modernes, mais je ne peux pas expliquer la raison pour laquelle IE refuse d'adhérer à la position de décalage que je spécifie ..?

Le 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); 


}); 

Il y a une démonstration de travail page setup here

Résolu: La réponse se trouve dans cette partie du script:

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

L'ajout de la position: par rapport à le clone temp trié c'est à dire sortir. Merci à tous.

Répondre

0

offset() renvoie un objet contenant les propriétés haut et gauche.

donc remplacer

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

avec

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

Pensez qui est un travail va.

+0

Vous n'avez pas besoin de faire cela, l'objet a déjà les propriétés dont il a besoin, il n'est pas nécessaire de l'envelopper dans * un autre * objet. –

+0

C'est vrai Nick, la suggestion de Tim fonctionne également, mais ne résout pas le problème. Merci, cependant, Tim. – Doobox

Questions connexes