Titre: Faire apparaitre un texte progressivement.
Posté par: Grand Mamamouchi le le 21-09-2004 a 00:55:24
Salut a toi !
Je voudrais ecrire un script qui ferait apparaitre du texte progressivement.
Voila le script :
<font color = green >green</font> // couleur du texte <font color = salmon >salmon </font> // couleur du fond
<div id = conteneur_html> jouai8u06f97cf876d86de67d8ne55ne68ndunty76u </div>
<script>
conteneur_dhtml = document.getElementById('conteneur_html')
function bi_hexer(reel) { chaine = '0123456789abcdef' cara_hexa = chaine.split('') return cara_hexa[reel%16] + cara_hexa[parseInt(reel/16)] }
duree_cumulee = 0
function faire_apparaitre(duree_totale) {
while( duree_cumulee <= duree_totale ) { ton = 255 * duree_cumulee/duree_totale
conteneur_dhtml.style.color = '#' + bi_hexer(ton) + 'ff' + bi_hexer(ton)
duree_cumulee += duree_totale/255 setTimeout('faire_apparaitre()', duree_totale/255) }
}
faire_apparaitre(5000)
</script>
Ca ne fonctionne pas et je ne comprends pas pourquoi.
Peut-tu m'eclairer ?
Merci de prendre soin de me repondre.
En esperant que ce message te trouvera en pleine forme, je te souhaite une excellente journee.
Dominique
mailto:d.braschi-blondeau@laposte.net
Bibi me fecit :
Loue a etudiant, au coeur de Paris (2e)... Pour tout savoir sur cette opportunite, viens sur http://d.braschi-blondeau.chez.tiscali.fr/Clery/
Tu veux connaitre l'esprit de la 'Maison Brulee'... viens nous voir sur notre nouveau site a http://lamaisonbrulee.chez.tiscali.fr ! |
Titre: Re:Faire apparaitre un texte progressivement.
Posté par: MarvinLeRouge le le 22-09-2004 a 18:35:01
Ta gestion du temps est mauvaise : tu fais un setTimeout pour rappeler automatiquement ta fonction, tu n'as donc pas à y faire de boucle. D'autre part, tu ne testes nulle part le temps réellement écoulé. Est-ce volontaire ? Selon moi, tu devrais logiquement :
- relever l'heure en millisecondes avant le premier appel de la fonction
- relever l'heure en millisecondes à chaque appel de la fonction
- tester la différence et te servir de cette valeur pour calculer le degré d'avancement du script, donc la couleur correcte
|
Titre: Re:Faire apparaitre un texte progressivement.
Posté par: Grand Mamamouchi le le 23-09-2004 a 02:30:53
Merci de ta contribution argumentee, MarvinLeRouge !
Dominique
|
Titre: Faire apparaitre un texte progressivement.
Posté par: Grand Mamamouchi le le 23-09-2004 a 04:03:12
Bonjour a toi !
Je suis toujours sur mon objectif de faire apparaitre du texte progressivement.
J'ai retrouve le nom des couleurs de fond et de texte et -merveille- le nom de la fonction qui traduit les decimaux en hexadecimaux.
Pour l'instant, je ne travaille plus sur les questions de temps.
Voici ou j'en suis :
<div id = texte > tbtuf6ny7idntyutbtuf6ny7idntyutbtuf6ny </div>
<script language = 'Javascript'>
hd_fond = document.bgColor.replace('#', '0x') hd_text = document.fgColor.replace('#', '0x') courante = hd_fond
delai = 22
function faire_apparaitre() { if( courante < hd_text ) courante++ else if( courante > hd_text ) courante-- else alert('Fini!')
hd_courante = courante.toString(16)
document.getElementById('texte').innerHTML = " <a style = ' color : #" + hd_courante + " ' > aaaaaaaaaaaaa </a> "
setTimeout(faire_apparaitre(), delai) }
faire_apparaitre()
</script>
D'une part, l'alert ne sort jamais; d'autre part, le colorage s'arrete a un jaune alors que la couleur de texte de depart est le noir.
Merci pour le coup de main !
Dominique |
Titre: Re:Faire apparaitre un texte progressivement.
Posté par: MarvinLeRouge le le 23-09-2004 a 09:44:29
Salut,
1) Je n'ai jamais fait d'addition avec ++ sur des hexas, donc je ne suis pas sûr que ça marche 2) Tu devrais t'arranger pour récupérer les couleurs générées au fur et à mesure pour vérifier qu'elles sont bien cohérentes : concatène les dans une chaîne durant le script et après affiche les avec un alert ou sur la page. 3) Quelles est la couleur de fond de ta page ? Quelle est la couleur de texte de ta page ? A Quelle couleur s'arrête ton script ? NB : Ces 3 questions nécessitent des réponses numériques précises.
|
Titre: Faire passer un texte d'une couleur a une autre...
Posté par: Grand Mamamouchi le le 23-09-2004 a 10:27:26
Salut MarvinLeRouge !
et merci de contribuer a ma recherche.
J'ai tente de verifier l'incrementation des hexadecimaux avec un alert : ca a l'air de se faire normalement.
La verification serait plus complete avec un input de form, mais je n'ai pas reussis a mettre cette verification-la en oeuvre (et je n'ai pas compris pourquoi je n'y arrivais pas; peut-etre a cause des guillemets, voir plus bas).
Le produit de l'incrementation ou de la decrementation d'un hexadecimal est un hexadecimal.
Si les deux bornes sont des valeurs de couleur, tous les hexadecimaux compris entre les deux bornes sont des valeurs de des couleurs.
Je me suis rendu compte que, dans mon script, j'avais oublie les guillemets dans le settimeout. Les guillemets mis, le document a change de comportement.
Maintenant, le texte apparait progressivement, mais toujours jusqu'au jaune seulement, et s'eteint, puis recommence.
Voila l'etat actuel de mon script :
<div id = conteneur > tbtuf6ny7idntyutbtuf6ny7idntyutbtuf6ny </div>
<script language = 'Javascript'>
hd_deb = document.bgColor.replace('#','0x') hd_fin = '0x000000' courante = hd_deb
delai = 1
function faire_apparaitre() { if( courante < hd_fin ) courante++ else if( courante > hd_fin ) courante-- else alert('Fini!')
hd_courante = courante.toString(16) while(hd_courante.length < 6) hd_courante = '0' + hd_courante
document.getElementById('conteneur').innerHTML = " <a style = ' color : #" + hd_courante + " ' > aaaaaaaaaaaaa </a> "
setTimeout('faire_apparaitre()', delai) }
faire_apparaitre()
</script>
J'ai trouve sur le vebe une page qui fait a peu pres l'effet que je veux produire et je suis en train de la decortiquer.
Merci encore,
Dominique |
Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.
|