Message déroulant

Résolu
bevig15 Messages postés 2 Date d'inscription lundi 28 mars 2016 Statut Membre Dernière intervention 28 mars 2016 - 28 mars 2016 à 11:56
bevig15 Messages postés 2 Date d'inscription lundi 28 mars 2016 Statut Membre Dernière intervention 28 mars 2016 - 28 mars 2016 à 14:48
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

@karamel Messages postés 1855 Date d'inscription vendredi 9 mai 2008 Statut Modérateur Dernière intervention 18 avril 2024 153
28 mars 2016 à 12:46
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);

0
bevig15 Messages postés 2 Date d'inscription lundi 28 mars 2016 Statut Membre Dernière intervention 28 mars 2016
Modifié par bevig15 le 28/03/2016 à 14:55
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.
0
Rejoignez-nous