Forum-webmaster
Technique - programmation => HTML / CSS / XHTML => Message commencé par: Grand Mamamouchi le le 21-09-2004 a 00:55:24

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.