Cherche l'aide d'un programmeur Javascript

Fermé
lio - 28 janv. 2002 à 22:19
 lio - 29 janv. 2002 à 09:22
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 2898 Date d'inscription jeudi 26 avril 2001 Statut Membre Dernière intervention 21 mars 2013 504
28 janv. 2002 à 22:49
IE 6 à des bugs !
Je ne chercherais pas plus loin...

-= Bobinours =-
0
PhP Messages postés 1770 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606
28 janv. 2002 à 22:59
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
merci pour les réponses (la réponse :), mais ça marche pas
0