Cherche l'aide d'un programmeur Javascript

lio -  
 lio -
Bonjour à tous, voila j'ai un problème avec un javascript. le script affiche une pub qui suit l'ascensseur du navigateur, or si on clique sur l'ascensseur avant que la pub soit totalement affichée, une erreur java se produit, "document...." à la valeur null. le bug se produit sur ie6, mais pas sur ie5.5, ns6, etc...
( http://www.lc-informatique.com/ , cliquer sur l'assenceur dès qu'il est visible pour tester le bug)

voila un bout du script qui à mon avis bug:
var smoothNess = 0.08;
// Détection navigateur
DOM = (document.getElementById) ? true : false;
NS4 = (document.layers) ? true : false;
IE = (document.all) ? true : false;
NS6 = DOM && !NS4 && !IE;
// Dernière position Y du layer
lastScrollY = 0;
valSUP = false;
valINF = true;
// La gestion du layer
function heartBeat() {
if(IE) { diffY = document.body.scrollTop; }
else if(NS4 || NS6) { diffY = self.pageYOffset; }

if(valSUP && diffY<90) { valINF = true; valSUP = false; }
if(valINF && diffY>90) { valSUP = true; valINF = false; }
if(valSUP) { diffY = diffY-0; }
if(diffY != lastScrollY) {
percent = smoothNess * (diffY - lastScrollY);
if(percent > 0) percent = Math.ceil(percent);
else percent = Math.floor(percent);
if(IE) document.all.dmenud.style.pixelTop += percent;
if(IE) document.all.dmenud2.style.pixelTop += percent;
if(NS4) document.dmenud.top += percent;
if(NS4) document.dmenud2.top += percent;
if(NS6) document.getElementById("dmenud").style.top = parseInt(document.getElementById("dmenud").style.top) + percent;
if(NS6) document.getElementById("dmenud2").style.top = parseInt(document.getElementById("dmenud2").style.top) + percent;
lastScrollY += percent;
}
}

3 réponses

Bobinours Messages postés 2903 Statut Membre 504
 
IE 6 à des bugs !
Je ne chercherais pas plus loin...

-= Bobinours =-
0
PhP Messages postés 1774 Statut Membre 606
 
salut lio,

J'ai pas lu tout le code ...

Mais tu peux toujours essayer ca :

Ajoute au début de la fonction :

if ((IE) && (!document.all.dmenud)) return;

De cette façon tu sors tant que le layer dmenud n'est pas encore créé.

@+
Philippe

[[  The Truth is Out There   ]]
0
lio
 
merci pour les réponses (la réponse :), mais ça marche pas
0