application du setTimeOut pour un effet "machine à ecrire" [HTML/JS] - HTML/CSS - Programmation
Marsh Posté le 25-06-2010 à 14:40:36
Pour résoudre le problème, essayer de mettre la définition de la fonction frappe avant son appel, et en dehors de la boucle :
function frappe(ele,car){ |
Mais il y aura d'autres problèmes. Il faudrait revoir ça.
Marsh Posté le 25-06-2010 à 15:00:02
merci de ta réponse.
j'avais essayer de sortir la fonction , mais pas en la mettant avant son appel.
mais toujours la meme erreur de "frappe is not defined".
par contre, j'ai remarqué que si j'enleve les guillements : setTimeout(frappe(elemIdx,caractere),500);
ça tourne en boucle sur le premier caractere et j'ai bien sur une erreur : "useless setTimeout call (missing quotes around argument?)"
mais au moins la fonction est appelée apparemment.
edit : bon ben le probleme c'est qu on ne peut pas passer de parametres dans l'appel d'une fonction à l'interieur d'un setTimeOut apparemment.
et si je ne passe pas ses parametres :
Citation : setTimeout("frappe()",500); |
c'est le tableau[elemIdx] qui devient undefined ...
Marsh Posté le 13-07-2010 à 13:09:04
J'essai d'utiliser un heure digitalle sur ma page et ma fonction setTimeOut et setInterval ne marche pas SVP aidez moi
Marsh Posté le 25-06-2010 à 12:07:49
bonjour à tous !
j'essaie d'installer un effet de "frappe machine à ecrire" sur la page presentation/identité de mon portfolio
www.laurent-marty.fr
voici mon HTML
<div class="colonne_droite">
<form name="form_identite">
<textarea rows="10" cols="0" name="entrees" class="entrees">
</textarea>
</form>
</div>
et mon JS actuel
function machine(){
var tableau = ["MARTY", "Laurent", "plug-in", "j'ai connu le minitel, hé oui !",".fr","#ff8bb1","51600px à 300dPi","float:left"];
var elemIdx = 0;
var caractere = 0;
for (elemIdx; elemIdx<tableau.length; elemIdx++) {
caractere=0;
document.form_identite.entrees.value += "\n\r";
for (caractere; caractere<tableau[elemIdx].length; caractere++) {
document.form_identite.entrees.value += tableau[elemIdx].substr(caractere,1);
};
};
};
ce code fonctionne et m'affiche bien les elements du tableau.
mais je voudrai mettre un délai d'affichage entre chaque lettre.
j'ai donc essayé ceci :
for (caractere; caractere<tableau[elemIdx].length; caractere++) {
setTimeout("frappe(elemIdx,caractere)",500);
function frappe(ele,car){
document.form_identite.entrees.value += tableau[ele].substr(car,1);
};
};
et j'ai une erreur "frappe is not defined"
comment dois-je m'y prendre pour faire fonctionner ce setTimeOut ?
merci
Message édité par Ch'DUP le 25-06-2010 à 15:10:44