Bonsoir !
J'ai un petit soucis avec une fonction javascript qui permet de faire défiler un texte dans une div en jouant avec le "top" dans le style.
Voilà le code du script :
Voilà mes div :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 <script language="javascript" type="text/javascript"> // Script pour le défilement de la description de l'image var Timer; var Pas = 3; function moveLayer(Sens, Contenu, Support) { Objet=document.getElementById("contenu1"); if(parseInt(Objet.style.top) + (Pas*Sens)>0) { clearTimeout(Timer); } else { if(parseInt(Objet.style.top) + (Pas*Sens)<-(Objet.offsetHeight-document.getElementById("support1").offsetHeight)) { clearTimeout(Timer); } else { Objet.style.top = (parseInt(Objet.style.top) + (Pas*Sens)) + "px"; } } Timer = setTimeout("moveLayer(" + Sens + ");", 30); } </script>
J'ai donc une div principale nommée "support1" qui va encadrer le reste pour éviter que le texte sorte de la div, et j'ai une sous-div nommée "contenu1" qui va contenir le texte a défilé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 <div class="expo_description" id="support1" style="position:relative; width:10%; height:60; overflow:hidden;"> // div contenant le texte a defile <div id="contenu1" style="width:90%; position:relative; top:0;"> test<br /> test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br /> test<br />test<br />test<br />test<br />test<br /> </div> // div contenant les images up et down pour le defilement du texte <div style="width:10%; height:60; position:absolute; right:0; top:0;"> <img onMouseOver="moveLayer(1, 'contenu1', 'support1');" onMouseOut="clearTimeout(Timer);" src="css/img/slideup.gif" style="cursor:pointer; position:absolute; right:0; top:0;" alt="" /> <img onMouseOver="moveLayer(-1, 'contenu1', 'support1');" onMouseOut="clearTimeout(Timer);" src="css/img/slidedown.gif" style="cursor:pointer; position:absolute; right:0; bottom:0;" alt="" /> </div> </div>
Ces 2 codes fonctionnent à merveille (vous pouvez tester).
Le soucis étant que je vais avoir plusieurs de ces memes div dans une meme page et que donc il faut que je différencie les id des div (d'où le passage en parametre dans la fonction de 'contenu1' et 'support1'.
Dans le script on changera donc
par
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 ... Objet=document.getElementById("contenu1"); ... if(parseInt(Objet.style.top) + (Pas*Sens)<-(Objet.offsetHeight-document.getElementById("support1").offsetHeight)) { ...
Et là, probleme !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 ... Objet=document.getElementById(Contenu); ... if(parseInt(Objet.style.top) + (Pas*Sens)<-(Objet.offsetHeight-document.getElementById(Support).offsetHeight)) { ...
Le défilement se fait toujours mais cran par cran même si on laisse la souris sur l'image.
Je ne vois vraiment pas d'où vient le probleme, j'ai fait des alert de contenu et support et on trouve bien "contenu1" et "support1" (normal puisque ça déroule quand meme).
De plus une erreur javascript s'affiche dans le 2eme code (mais pas dans le premier).
Si vous pouviez m'éclairer :/
Merci
Partager