<SCRIPT LANGUAGE="JavaScript1.2">
<!--
| var ns4 = (document.layers)? true:false; | //NS 4 |
| var ie4 = (document.all)? true:false; | //IE 4 |
| var dom = (document.getElementById)? true:false; | //DOM |
//Paramètres à définir
| var DivWidth = 500; | //Largeur du DIV contenant le message |
| var ScrollSpeed = 10; | //Largeur du DIV contenant le message |
//Déclaration des variables globales
| var DivLeft = 0; | //Position du Div par rapport au côté gauche |
| var DivTop = 0; | //Position du Div par rapport au haut de la page |
| var MessageWidth = 0; | //Largeur du Message |
| var first = true; | //Indication de démarrage du défilement |
| var StartPos = 0; | //Position de départ du DIV contenant le message |
| var EndPos = 0; | //Position finale du DIV contenant le message |
| var MyPos = 0; | //Position courante du DIV contenant le message |
| var DivClipLeft = 0; | //Début de la partie visible du DIV |
| var DivClipRight = 0; | //Fin de la partie visible du DIV |
function ScrollInit(ID_Anchor,Name_Anchor,ID_Div)
//Fonction faisant l'initialisation du DIV contenant le message
//et le lancement du défilement du message
{
if (dom)
{
pos = document.getElementById(ID_Anchor);
MessageWidth = document.getElementById(ID_Div).offsetWidth;
DivLeft = getLeft(pos);
DivTop = getTop(pos);
StartPos = DivLeft + DivWidth;
EndPos = DivLeft - MessageWidth;
MyPos = StartPos;
document.getElementById(ID_Div).style.top = DivTop;
}
else if (ie4)
{
pos = document.all[ID_Anchor];
MessageWidth = document.all[ID_Div].clientWidth;
DivLeft = getLeft(pos);
DivTop = getTop(pos);
StartPos = DivLeft + DivWidth;
EndPos = DivLeft - MessageWidth;
MyPos = StartPos;
document.all[ID_Div].style.posTop = DivTop;
}
else if (ns4)
{
pos = document.anchors[Name_Anchor];
MessageWidth = document.layers[ID_Div].clip.width;
DivLeft = pos.x;
DivTop = pos.y;
StartPos = DivLeft + DivWidth;
EndPos = DivLeft - MessageWidth;
MyPos = StartPos;
document.layers[ID_Div].pageY = DivTop;
}
setInterval("Scrolling('"+ID_Div+"')", ScrollSpeed);
}
function getLeft(MyObject)
//Fonction permettant de connaître la position d'un objet
//par rapport au bord gauche de la page.
//Cet objet peut être à l'intérieur d'un autre objet.
{
if (MyObject.offsetParent)
return (MyObject.offsetLeft + getLeft(MyObject.offsetParent));
else
return (MyObject.offsetLeft);
}
function getTop(MyObject)
//Fonction permettant de connaître la position d'un objet
//par rapport au bord haut de la page.
//Cet objet peut être à l'intérieur d'un autre objet.
{
if (MyObject.offsetParent)
return (MyObject.offsetTop + getTop(MyObject.offsetParent));
else
return (MyObject.offsetTop);
}
function Scrolling(ID_Div)
//Fonction faisant défilé le message
{
if (MyPos < EndPos) MyPos = StartPos;
DivClipLeft = DivLeft - MyPos;
DivClipRight = StartPos - MyPos;
if (dom)
{
document.getElementById(ID_Div).style.left = MyPos;
document.getElementById(ID_Div).style.top = DivTop;
document.getElementById(ID_Div).style.clip = "rect(auto "
+DivClipRight+"px auto "+DivClipLeft+"px)";
if (first)
document.getElementById(ID_Div).style.visibility = "visible";
}
else if (ie4)
{
document.all[ID_Div].style.posLeft = MyPos;
document.all[ID_Div].style.posTop = DivTop;
document.all[ID_Div].style.clip = "rect(auto "+DivClipRight
+"px auto "+DivClipLeft+"px)";
if (first) document.all[ID_Div].style.visibility = "visible";
}
else if (ns4)
{
document.layers[ID_Div].pageX = MyPos;
document.layers[ID_Div].clip.left = DivClipLeft;
document.layers[ID_Div].clip.right = DivClipRight;
if (first) document.layers[ID_Div].visibility = "show";
}
first = false;
MyPos = MyPos - 1;
}
//-->
</SCRIPT>
Vous pouvez voir vers le début de ce javascript, qu'il est nécessaire de fixer 2 paramètres :
- DivWidth (la largeur d'affichage du message en pixel),
- ScrollSpeed (la vitesse de défilement).
Ensuite, il faut déclarer dans le tag <BODY> l'appel à la fonction qui lance l'affichage du message défilant :
<BODY OnLoad="ScrollInit('ScrollPos','ScrollPos','MyScroll')">
Après, dans votre page HTML, à l'endroit où vous voulez que le message s'affiche, vous devez déclarer l'ancre :
<A id="ScrollPos" name="ScrollPos"> </A>
Enfin, dans votre page HTML avant le tag </BODY>, il faut déclarer le DIV contenant le message :
<DIV id="MonDiv" style="position:absolute;visibility:visible;">
Votre message ...
</DIV>
C'est terminé. Si vous lancez votre page dans un navigateur IE 4 et +, ou NS 4 et +, vous obtenez votre message défilant.