SetTimout et couleur [Résolu]

Signaler
Messages postés
379
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
8 octobre 2008
-
Messages postés
379
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
8 octobre 2008
-
bonjour,

je suis débutat en javascript et je ve afficher un titre auxquels sa couleur change toutes les 100ms
et donc j'ai écrit ce script mais je ne parviens pas à obtenir de résutat

est ce que quelqu'un peut m'aider, s'il vous plait.

<script type="text/javascript">
function ValeurAleatoire(N){
  return(Math.floor((N)*Math.random()));
}


function couleur()
{
var RR = "A";
var GG = "A";
var BB = "A";
var coul = new Array();
coul = ('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');


 var Index = ValeurAleatoire(15);  // Récup. d'une valeur Aléatoire
 RR = coul[Index];
 var Index = ValeurAleatoire(15);  // Récup. d'une valeur Aléatoire
 GG = coul[Index];
 var Index = ValeurAleatoire(15);  // Récup. d'une valeur Aléatoire
 BB = coul[Index];
 alert('#'+RR+RR+GG+GG+BB+BB);
 return = '#'+RR+RR+GG+GG+BB+BB;
//setTimeout(function,delai);
}
function StartAnim()
 {
 var chaine ="Bienvenue, Mistigry dans notre dossier de partage personnel !!";
 document.write(chaine.fontcolor(couleur()));
 setTimeout("StartAnim()",100);


}


</script>
A voir également:

17 réponses

Messages postés
450
Date d'inscription
samedi 16 avril 2005
Statut
Membre
Dernière intervention
18 avril 2007
2
-_-" je vais trop avoir l'air d'un noob...
l'erreur depuis le début c'etait juste que tu as mis des parenthèses aulieu de crochet :

<script type="text/javascript">
function couleur()
{
var coul =['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'];
var hexa="#";
for(i=0;i<6;i++)
{
hexa+=coul[Math.round(coul.length*Math.random())];
}
alert(hexa)
document.getElementById("chaine").style.color=hexa;
}
setInterval("couleur()",100);
</script>
coucou

<hr />Le travail n'a jamais tué personne, mais pourquoi prendre le rique ?
Messages postés
450
Date d'inscription
samedi 16 avril 2005
Statut
Membre
Dernière intervention
18 avril 2007
2
non, fais plutot Math.floor(coul.length*Math.random).
Car le problème vient du fait que a un moment donné, il arrondi a 17, alors que là il prend l'entier inferieur, et tu verra que le tiens aussi finira par afficher #undefined6aFFF (conséquence de coul[0-1] soit coul[-1] ce qui est impossible.)

<hr />Le travail n'a jamais tué personne, mais pourquoi prendre le rique ?
Messages postés
450
Date d'inscription
samedi 16 avril 2005
Statut
Membre
Dernière intervention
18 avril 2007
2
Bonjour,
Modifie un peu ton code :

<script type="text/javascript">
var coul = ('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');
var Random=function(n){return coul[Math.round(n*Math.random())]};
function couleur()
{
document.chaine.style.background="#"+Random();
}
setInterval("couleur()",100);
</script>
coucou

<hr />Le travail n'a jamais tué personne, mais pourquoi prendre le rique ?
Messages postés
379
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
8 octobre 2008

salut stfou,

est ce que tu peux m'expliquer le code s'il te plait,
par ce que j'ai du mal a saisir ton code et il ne fonctionne pas
merci
Messages postés
450
Date d'inscription
samedi 16 avril 2005
Statut
Membre
Dernière intervention
18 avril 2007
2
Bonjour,
petite correction a mon code :

<script type="text/javascript">
var coul = ('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');
var Random=function(n){return coul[Math.round(n*Math.random())]};
function couleur()
{
document.chaine.style.color="#"+Random()+Random()+Random()+Random()+Random()+Random();
}
setInterval("couleur()",100);
</script>
coucou

Petite explication :

variable coul : liste des caractères alphanumériques héxadécimaux;
variable Random : function qui renvoi une valeur pseudo-aléatoire parmi la variable coul;
fonction couleur : modifie l'attribut style.color qui gère la couleur du texte pour une valeur égale a un dièse ("#"), et 6 fois un caractère aléatoire (Random) héxadécimal. ce qui nous donne une chaine au format : #FFFFFF. qui donc change la couleur du texte.

<hr />Le travail n'a jamais tué personne, mais pourquoi prendre le rique ?
Messages postés
379
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
8 octobre 2008

est ce que ton code marche chez toi ??
parce que ton code marche pas du tout chez moi !!
sinon merci pour les explications
Messages postés
450
Date d'inscription
samedi 16 avril 2005
Statut
Membre
Dernière intervention
18 avril 2007
2
Re-correction -_-" (chuis vraiment pas doué)
script type="text/javascript">
var coul = ('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');
var Random=function(n){return coul[Math.round(n*Math.random())]};
function couleur()
{
document.chaine.style.color="#"+Random(coul.length)+Random(coul.length)+Random(coul.length)+Random(coul.length)+Random(coul.length)+Random(coul.length);
}
setInterval("couleur()",100);
</script>
coucouLe travail n'a jamais tué personne, mais pourquoi prendre le rique ?
Messages postés
379
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
8 octobre 2008

lol,
désolé toujours rien !! mdr !!
par contre je ne comprends pas le : Random(coul.length)
Messages postés
450
Date d'inscription
samedi 16 avril 2005
Statut
Membre
Dernière intervention
18 avril 2007
2
Bonjour,
Mais pourquoi ça marche pas ? :'(
Random c'est la fonction qui tire au sort une valeur parmi coul, essaie donc ce code (re-re-correction :'( )

<script type="text/javascript">
var coul = ('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');
var Random=function(){return coul[Math.round(coul.length*Math.random())]};
function couleur()
{
document.chaine.style.color="#"+Random()+Random()+Random()+Random()+Random()+Random();
}
setInterval("couleur()",100);
</script>
coucou

<hr />Le travail n'a jamais tué personne, mais pourquoi prendre le rique ?
Messages postés
450
Date d'inscription
samedi 16 avril 2005
Statut
Membre
Dernière intervention
18 avril 2007
2
d'ailleur je vais le simplifier mon code :

<script type="text/javascript">
function couleur()
{
var coul = ('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');
var hexa="#";
for(i=0;i<6;i++)
{
hexa+=coul[Math.round(coul.length*Math.random())];
}
document.chaine.style.color=hexa;
}
setInterval("couleur()",100);
</script>
coucou

<hr />Le travail n'a jamais tué personne, mais pourquoi prendre le rique ?
Messages postés
379
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
8 octobre 2008

ya rien a faire !!  toujours rien !!
je te propose de le tester chez toi et quand sa marche chez toi tu m'envoie un mail moi je v essayer de trouver de mon coté aussi bien que c pas gagné !!
Messages postés
379
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
8 octobre 2008

super merci !!

j ai pas l air idiot moi non plus car je n avai mm pas fait attention aussi !!
Messages postés
379
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
8 octobre 2008

d'ailleurs g apporter une correction a mon tour :

<script type="text/javascript">
function couleur()
{
var coul =['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'];
var hexa="#";
for(i=0;i<6;i++)
{
hexa+=coul[Math.round((coul.length-1)*Math.random())];
}
alert(hexa)
document.getElementById("chaine").style.color=hexa;
}
setInterval("couleur()",100);
</script>
coucou

vu que un tableau affecte la premiere valeur à 0
il faut faire un coul.length-1 l'equivalent d un count()-1
Messages postés
450
Date d'inscription
samedi 16 avril 2005
Statut
Membre
Dernière intervention
18 avril 2007
2
Non, car si tu regarde bien, tu verra que la boucle for commence aussi a 0. donc la boucle et le tableau correspondent.

<hr />Le travail n'a jamais tué personne, mais pourquoi prendre le rique ?
Messages postés
379
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
8 octobre 2008

oui mais essai ta version et ma version, tu verra que au bout de 3 a 4 couleurs, ton script plante et le mien non
Messages postés
379
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
8 octobre 2008

teste avec le alert et tu verra un moment au lieu de mettre quelquechose du genre #ABDE57 sa mettra un truc du genre #undefined36D3
Messages postés
379
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
8 octobre 2008

ah effectivement !! d'autant pour moi !!