Les titres
défilants
Tous les évènements
qui accrochent particulièrement se doivent ... de bouger ! En
effet, un texte immobile, perdu dans l'immensité d'une page
remplie de texte, passe aussi inaperçu que la foule dans la
ville ou le brin d'herbe dans une prairie ... et risque par
conséquent de rater la cible qu'il avait choisi : le visiteur
!
Empruntons donc un de ces artifices dont
la ville et ses lumières clignotantes a le secret : le journal
lumineux. Sans toutefois en faire un journal complet (je vous propose
sur une autre page un technique plus économique), gardons
l'essentiel de l'effet que cet évènement produit :
attirer le regard.
Voyons tout d'abord "la bête" :
Oui, je sais, c'est ma publicité
que vous voyez là ... ; après tout, c'est bien fait
pour cela, non ? De plus, j'espère qu'elle obtiendra l'effet
escompté !
Vous en voulez autant sur votre page ?
Alors, accrochez-vous, voici le script :
<SCRIPT
LANGUAGE=JavaScript>
var
largeur="100%"
var
hauteur=26
var couleur='none'
var messages=new Array()
messages[0]="<font
face=verdana size=5
color=blue><b><i>Bienvenue
dans l'espace Docanski
!</i></b></font>"
messages[1]="<font
face=arial size=4
color=red><b>Vous
y découvrirez la Rance maritime et les côtes de
l'Armorique
...</b></font>"
messages[2]="<font
face=arial size=4
color=red><b>vous
y apprendrez à reconnaître les principaux
champignons</b></font>"
messages[3]="<font
face=arial size=4
color=red><b>...
et vous vous lancerez peut-être ... dans la
création d'un site Web
...</b></font>"
if (messages.length>1)
i=2
else
i=0
function debut(){
if (document.all){
Bouge3(un2)
deux2.style.top=hauteur
}
else if (document.layers){
Bouge1(document.main.document.first)
document.main.document.second.top=hauteur+7
document.main.document.second.visibility='show'
}
}
function Bouge1(whichlayer){
tlayer=eval(whichlayer)
if
(tlayer.top>0&&tlayer.top<=7){
tlayer.top=0
setTimeout("Bouge1(tlayer)",3000)
setTimeout("Bouge2(document.main.document.second)",3000)
return
}
>if (tlayer.top>=tlayer.document.height*-1){
tlayer.top-=7
setTimeout("Bouge1(tlayer)",91)
}
else{
tlayer.top=hauteur
tlayer.document.write(messages[i])
tlayer.document.close()
if(i==messages.length-1)
i=0
elsei++}}
function Bouge2(whichlayer){
tlayer2=eval(whichlayer)
if
(tlayer2.top>0&&tlayer2.top<=7){
tlayer2.top=0
setTimeout("Bouge2(tlayer2)",3000)
setTimeout("Bouge1(document.main.document.first)",3000)
return
}
if (tlayer2.top>=tlayer2.document.height*-1){
tlayer2.top-=7
setTimeout("Bouge2(tlayer2)",91)
}
else{
tlayer2.top=hauteur
tlayer2.document.write(messages[i])
tlayer2.document.close()
if (i==messages.length-1)
i=0
else
i++
}
}
function Bouge3(whichdiv){
tdiv=eval(whichdiv)
if
(tdiv.style.pixelTop>0&&tdiv.style.pixelTop<=7){
tdiv.style.pixelTop=0
setTimeout("Bouge3(tdiv)",3000)
setTimeout("Bouge4(deux2)",3000)
return
}
if (tdiv.style.pixelTop>=tdiv.offsetHeight*-1){
tdiv.style.pixelTop-=7
setTimeout("Bouge3(tdiv)",91)
}
else{
tdiv.style.pixelTop=hauteur
tdiv.innerHTML=messages[i]
if (i==messages.length-1)
i=0
else
i++
}
}
function Bouge4(whichdiv){
tdiv2=eval(whichdiv)
if
(tdiv2.style.pixelTop>0&&tdiv2.style.pixelTop<=7){
tdiv2.style.pixelTop=0
setTimeout("Bouge4(tdiv2)",3000)
setTimeout("Bouge3(un2)",3000)
return
}
if (tdiv2.style.pixelTop>=tdiv2.offsetHeight*-1){
tdiv2.style.pixelTop-=7
setTimeout("Bouge4(deux2)",91)
}
else{
tdiv2.style.pixelTop=hauteur
>tdiv2.innerHTML=messages[i]
if (i==messages.length-1)
>i=0
else
i++
}
}
window.onload=debut</SCRIPT>
<SCRIPT LANGUAGE=JavaScript><ILAYER id=main
bgColor="&{couleur};"
height="&{hauteur};"
width="&{largeur};"><LAYER
id=first width="&{largeur};" top="1" left="0">if
(document.layers)
document.write(messages[0])</LAYER><LAYER
id=second width="&{largeur};" top="0" left="0"
visibility="hide">if (document.layers)
document.write(messages[1])</LAYER></ILAYER></SCRIPT>
<SCRIPT LANGUAGE=JavaScript>if (document.all){
document.writeln('<span id="even2"
style="position:relative;width:'+largeur+';height:'+hauteur+';overflow:hiden;background-color:'+couleur+'">')
document.writeln('<div
style="position:absolute;width:'+largeur+';height:'+hauteur+';clip:rect(0
'+largeur+' '+hauteur+' 0);left:0;top:0">')
document.writeln('<div id="un2"
style="position:absolute;width:'+largeur+';left:0;top:1;">')
document.write(messages[0])
document.writeln('</div>')
document.writeln('<div id="deux2"
style="position:absolute;width:'+largeur+';left:0;top:0">')
document.write(messages[1])
document.writeln('</div>')
document.writeln('</div>')
document.writeln('</span>')
}</SCRIPT>
|
Long comme un jour sans pain, ce script
rebutera sans doute certains d'entre vous. Il s'agit toutefois d'une
impression car, en réalité, il trouve sa longueur dans
la répétition de définitions de calques (il
s'agit en effet encore ici de cette technique) au nombre de 4 :
autant que de lignes qui seront affichées. Et, par la force
des choses, les commandes d'affichage, dans la dernière partie
du script, se verront appliquer 4 fois également
...
Je ne m'étendrai pas, cette fois
encore, sur la façon de définir les différentes
fonctions et les boucles de variables : je pense que vous êtes
plus pressés de mettre ce gadget en état de fonctionner
sur votre page que de suivre un exposé complet. Je ne vais
toutefois pas vous abandonner là car quelques
précisions s'imposent :
les noms attribués aux variables sont clairs : en
rouge,
la taille de la fenêtre de texte peut être
modifiée.
en
bleu
: taille, fontes et couleurs de texte sont déterminées
comme dans un document Html.
dans la partie italique, vous installerez chacune des phrases
qui devra défiler.
en
vert,
les différentes variables de vitesse et temporisation des
affichages : soyez vigilant, évitez un oubli !
Si vous pouvez modifier les dimensions de la fenêtre, il reste
toutefois une taille limitée aux textes !
Rien ne vous empêche d'installer la fenêtre dans un
tableau : elle sera d'autant plus visible ...
L'ensemble des scripts constituant
cet évènement sera placé à l'endroit
où vous désirez le voir apparaître ... et donc,
dans tous les cas, entre les balises <BODY>.
... et si vous vous sentez l'âme
d'un développeur, essayez donc de réaliser des calques
supplémentaires accompagnés de leurs boucles afin
d'augmenter le nombre de lignes à afficher ... : augmentez le
nombre de fonctions, le nombre de documents à afficher,
enveloppez le tout dans la boucle d'affichage et ... cela
fonctionnera peut-être (si vous avez tout compris,
évidemment !) ...
Bon amusement !
