Bonjour à tous,
J'ai un script javascript dont le but est de faire défilé du texte.
Tout marche bien sous Fireofx mais sous IE le texte dépasse de son conteneur.
Il semblerait que le problème vienne du fait que IE gère mal la propriété CSS "overflow: hidden;".
Voici le code :
Le morceau de code correspondant au texte défilant :
Pour ceux qui aurait besoin d'une visualisation, voici à quoi ressemble le site : Pragmatus.
La page n'est pas à jour, elle ne contient pas les code ci-dessus mais c'est juste pour ceux qui veulent une visualisation.
Je suis preneur de toute forme de solutions. J
'avais déjà poster dans le forum XHTML pour un cas similaire, est ce qu'il est possible de modifier mon code Javascript pour résoudre mon prolème ?
Merci.
Modifié par LoK (15 Jun 2005 - 08:55)
J'ai un script javascript dont le but est de faire défilé du texte.
Tout marche bien sous Fireofx mais sous IE le texte dépasse de son conteneur.
Il semblerait que le problème vienne du fait que IE gère mal la propriété CSS "overflow: hidden;".
Voici le code :
<script language="javascript" type="text/javascript">
var t;//on declare le timer
function bBouge()
{
var texte_defilant=document.getElementById('texte_defilant');//ion recupere la balise qui a pour id "texte_defilant"
var pxLeft=texte_defilant.style.left.replace('px','');//on recupere le chiffre ( sans le px a la fin )
var taille_texte=texte_defilant.offsetWidth;//offsetWidth c'est la taille du div.
var screenW=document.getElementById('slogan').offsetWidth;//taille de la balise <div> qui contient le msg defilant
if(pxLeft==0-taille_texte)//si les pixels sont arrivés par rapport au bord gauche a la taille du texte ( donnera donc une position negative, du genre -100 )
pxLeft=screenW;//on remet le texte a la fin ( tout a droite )
else
pxLeft--;//on baisse les pixels ( ce qui provoque le decalage vers la gauche)
texte_defilant.style.left=pxLeft+"px";//on attribue la nouvelle position au texte
t=setTimeout('bBouge();',25);//toute les 0.010 secondes on rappele la fonction a l'infini ( recursivement )
}
onload=function(){
document.getElementById('texte_defilant').style.left=document.getElementById('slogan').offsetWidth+'px';
t=setTimeout('bBouge();',25);
}
</script>
Le morceau de code correspondant au texte défilant :
<div id="slogan" onmouseover="clearTimeout(t);" onmouseout="bBouge()">
<span id="texte_defilant">
Utiliser le <a class="a2" href="pack.php">pack graphique</a> vous permet d'afficher toutes les pages du site plus rapidement ; en <a class="a2" href="pack.php">savoir plus</a>.
</span>
</div>
[code]
Le CSS correspondant :
[code]
#slogan {
height: 20px;
width: 738px;
margin: 3px 3px 5px 3px;
background-color: #7791A2;
border: 1px solid #5A5D57;
line-height: 12px;
text-indent: 5px;
overflow: hidden;
}
#texte_defilant{
position: relative;
}
Pour ceux qui aurait besoin d'une visualisation, voici à quoi ressemble le site : Pragmatus.
La page n'est pas à jour, elle ne contient pas les code ci-dessus mais c'est juste pour ceux qui veulent une visualisation.
Je suis preneur de toute forme de solutions. J
'avais déjà poster dans le forum XHTML pour un cas similaire, est ce qu'il est possible de modifier mon code Javascript pour résoudre mon prolème ?
Merci.
Modifié par LoK (15 Jun 2005 - 08:55)