11540 sujets

JavaScript, DOM et API Web HTML5

un petit script :
function skrol() {
document.getElementById("menu").style.backgroundPosition = document.body.scrollLeft+'px';
}

appelé par :
<body onscroll="skrol()">

ça fonctionne partout sauf dans Firefox !
l'un d'entre vous aurait-il une idée du pourquoi ?
[par avance merci Smiley cligne ]

[édit]
je viens de trouver cette solution :
document.getElementById("menu").style.backgroundPosition = -window.pageXOffset + "px";

qui semble fonctionner avec Firefox, je dois vérifier maintenant si c'est compatible avec les autres browsers.
Modifié par gazobu (24 Apr 2013 - 10:41)
je n'ai pas suffisamment de connaissance en javascript pour t'aider Smiley ohwell , mais déjà en terme de bonne pratique, je crois qu'il vaut mieux éviter les fonctions dans les balises html et préférer écouter les événement dans un fichier.js à part. Smiley cligne
themagicdavid a écrit :
…en terme de bonne pratique, je crois qu'il vaut mieux éviter les fonctions dans les balises html… Smiley cligne

dans l'absolu tu as raison, mais pour une simple ligne de code appelée par une balise je pense que ce serait trop lourd de faire un script qui, au demeurant, ferait la même chose.
vérification faite le :
document.getElementById("menu").style.backgroundPosition = -window.pageXOffset + "px";

fonctionne partout, c'est juste Firefox qui ne sait pas gérer «document.body.scrollLeft»