Message déroulant [Résolu]

Signaler
Messages postés
2
Date d'inscription
lundi 28 mars 2016
Statut
Membre
Dernière intervention
28 mars 2016
-
Messages postés
2
Date d'inscription
lundi 28 mars 2016
Statut
Membre
Dernière intervention
28 mars 2016
-
Bonjour,
J'ai pris exemple sur le code de JLM CONSULTANT pour faire un texte déroulant que j'inclus en titre d'une page web.
Cela marche, mais big PB c'est que c'est long à démarrer et je n'arrive pas à voir pourquoi.
Quelqu'un peut-il m'aider ?
Voici mon code :
<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html" charset="utf-8" />
<title>Texte defilant JS</title>
<style>
#bandeau
{
display:block;
margin: auto;
width: 650px;
position: relative;
padding-left: 5px;
margin-bottom: auto;
box-shadow: 1px 7px 5px 2px #BDBDBD;
border-radius: 2px;
}
.textebandeau
{
font-style:italic;
font-weight:bold;
font-size:36px;
font-style:italic;
font-weight:bold;
color:blue;
position:relative;
white-space:nowrap;
display:inline;
float:left;
padding:5px
}
</style>
</head>
<body>
<div id="bandeau">
<div id="defil1" style="position:relative;width:650px;overflow:hidden" onMouseOver="Pause1();" onMouseOut="Defile1();" >
<div id="contenu1" class="textebandeau">
</div>
</div>
</div>
<script type="text/javascript">

// defilement horizontal du texte du bandeau

var Timer1 ;
var Vitesse1 = 15 ;
var Scroll1 = 0 ;
var P1 = 0 ;
var Intro1 = true ;
var Boucle1 = false ;
// Texte1 peut être renseigné par une variable php
var Texte1 = 'Et la maintenant mon texte de titre page' ;
// La séparation entre chaque texte
Texte1 = Texte1 + ' - ' ;
var Contenu1 = document.getElementById("contenu1") ;
Contenu1.innerHTML = Texte1 ;
var LargC = Contenu1.clientWidth ;
var Defil1 = document.getElementById("defil1") ;
var LargD = Defil1.clientWidth ;
Contenu1.style.left = LargD + "px" ;

function Defile1()
{
while ( LargC <= LargD )
{
Texte1 += Texte1 ;
Contenu1.innerHTML += Texte1 ;
LargC = Contenu1.clientWidth ;
}
if ( P1 == 0 )
{
Contenu1.innerHTML += Texte1 ;
P1 = 1 ;
}
Scroll1++ ;
if ( Intro1 == true && Scroll1 == LargD )
{
Scroll1 = 0 ;
Contenu1.style.left = 0 + 'px' ;
Intro1 = false ;
Boucle1 = true ;
}
if ( Boucle1 == true && Scroll1 == LargC-20 ) // -10 compense le padding de 5px du div contenu1
{
Scroll1 = 0 ;
Contenu1.style.left = 0 + 'px' ;
}
Contenu1.style.left = ( Contenu1.offsetLeft - 1 ) + 'px' ;
Timer1 = setTimeout('Defile1()', Vitesse1) ;
}

function Pause1()
{
clearTimeout(Timer1) ;
}

</script>
</body>
</html>

2 réponses

Messages postés
1757
Date d'inscription
vendredi 9 mai 2008
Statut
Modérateur
Dernière intervention
23 mai 2020
76
bonjour

il faut lancer la fonction au chargement de la page

rajoute cette ligne

typeof window.addEventListener == 'undefined' ? window.attachEvent("onload",Defile1) : addEventListener("load",Defile1, false);

Messages postés
2
Date d'inscription
lundi 28 mars 2016
Statut
Membre
Dernière intervention
28 mars 2016

Merci Kazma.
J'essai ton code. C'est bien ce qui me semblait, mais je ne savais pas comment m'y prendre. Je débute en js, malgré mon age avancé et mon expérience informatique.

Hé bien clean. Trés merci beaucoup pour cette aide. ça marche "du feu de dieu" comme on dit. Nickel.