11486 sujets

JavaScript, DOM et API Web HTML5

bonjour,

J'ai un gros souci avec le code simple suivant (voir fin de message).
Avec le DOCTYPE suivant : <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> le script fonctionne parfaitement sous IE et Firefox.

En ajoutant le DOCTYPE complet :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
Le script ne fonctionne plus sous Firefox mais est OK avec IE.

Je ne vois pas d'ou peut venir le problème ?
Merci d'avance pour votre aide.


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
	   "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Essai</title>
<link rel=stylesheet type="text/css" href="essai.css">
<script language="javascript" type="text/javascript">
var position=60;
var vitesse=1;
function move() {
var objet=document.getElementById('texte');
position +=vitesse;
if (position >=140 || position <=20) { vitesse=0-vitesse; }
objet.style.top=position;
window.setTimeout("move();",25); }
</script>
</head>
<body onload="move();">
<div id="texte">Coucou !</div>
</body>
</html>


Le fichier CSS externe:

#texte {
position: absolute;
top: 50px;
left: 50px;
}

Modifié par rollbich (03 Nov 2005 - 14:13)
Administrateur
Hello rollbich et bienvenue ici,

Attention à ne pas te précipiter pour poster. Tu as un sujet d'annonce (dans le bandeau "nouveau sur le forum ?") à suivre.
Celui-ci t'indique notamment qu'il existe des Règles sur ce forum. L'une d'entres-elles explique comment nous voulons que les codes soient affichés dans les messages.

Merci de bien vouloir appliquer ces règles de bonne conduite et de courtoisie en éditant ton premier message en conséquence.

Bonne chance Smiley cligne
Bonjour,
En ajoutant la dtd tu ajoute une contrainte de rigeur, les "petites fautes" ne sont plus automatiquement corrigées ...
Dans ton code tu met
objet.style.top=position;

Ce qui vu ton code fais par exemple objet.style.top=50; oui mais 50 quoi ???, cm, pixels, patates ???
Tu l'aura compris, il faut donc que tu rajoute une unité de mesure pour que ton code fonctionne avec la dtd comma par exemple :
objet.style.top=position[b]+"px"[/b];
fxoxo a écrit :

En ajoutant la dtd tu ajoute une contrainte de rigeur, les "petites fautes" ne sont plus automatiquement corrigées ...


Excellente formulation, à retenir Smiley smile