Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2102 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  scroller un div grace au JS

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

scroller un div grace au JS

n°1423916
bis2kt
Posté le 10-08-2006 à 17:39:25  profilanswer
 

voilà, je suis sur la refonte d'un site et j'ai enlevé tous les position:absolute des div et là, surprise, le scroll JS ne fonctionne plus, j'ai tout essayé mais je m'y suis cassé les dents [:antyu] faut dire que je ne connais que très peu le JS. Bref, je me suis dit : je vais refaire une fction tte propre et toute nouvelle, j'ai donc trouvé ceci :http://www.adp-gmbh.ch/web/js/scroll.html et je l'ai adapté :
 
le JS

Code :
  1. function move_up() {
  2.     mon_div.scrollTop -=2;
  3.     var timer=setTimeout('move_up();',20);
  4.   }
  5. function move_down() {
  6.     mon_div.scrollTop +=2;
  7.     var timer=setTimeout('move_down();',20);
  8.   }


 
l'html

Code :
  1. <div id="mon_div">
  2. <div id="text"> bla bla bla</div>
  3. </div>


 
et enfin le CSS :

Code :
  1. #mon_div{
  2. width:230px;
  3. height:240px;
  4. overflow:hidden;
  5. }
  6. #text{
  7. font-family: Verdana, Arial, Helvetica, sans-serif;
  8. font-size: 9px;
  9. font-style: normal;
  10. font-weight: normal;
  11. color: #000000;
  12. text-align: justify;
  13. }


 
ça marche plutot pas mal mais le probleme (ha enfin un probleme !) c'est que je n'arrive pas a l'arreter.
 
voilà le dernier bout de code :

Code :
  1. <a href="javascript:;" onMouseOut="clearTimeout(timer);" onMouseOver="move_up()"><img src="imgs/scroll_up.gif" name="up1"></a>

et le même pour le scroll down.
 
si quelqu'un pouvait m'aider a arreter le scroll ça serait génial, et pourquoi cette méthode ne fonctionne pas ?
 
merci !! :jap:  
 
 

mood
Publicité
Posté le 10-08-2006 à 17:39:25  profilanswer
 

n°1424430
brisssou
8-/
Posté le 11-08-2006 à 15:16:27  profilanswer
 

la notion de block, ça te parle ?
essaye ça :

Code :
  1. var timer;
  2. function move_up() {
  3.    mon_div.scrollTop -=2;
  4.    timer=setTimeout('move_up();',20);
  5. }
  6.  
  7. function move_down() {
  8.    mon_div.scrollTop +=2;
  9.    timer=setTimeout('move_down();',20);
  10. }


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
n°1424523
bis2kt
Posté le 11-08-2006 à 16:37:32  profilanswer
 

marche po...  
oui ça me parle les block, mais je vois pas en quoi ça pourrait d'aider, vais me renseigner vite fait

n°1424524
bis2kt
Posté le 11-08-2006 à 16:37:32  profilanswer
 

marche po...  
oui ça me parle les block, mais je vois pas en quoi ça pourrait d'aider, vais me renseigner vite fait
 
edit: tiens, un ptit bug du forum hardware :) j'ai cliqué trop vite et pouf ! 2 messages


Message édité par bis2kt le 11-08-2006 à 16:38:26
n°1424575
brisssou
8-/
Posté le 11-08-2006 à 18:17:14  profilanswer
 

les blocks, la porté des variables, tout ça... ici, tu redéfinis ta variable dans chaque fonction, et elle n'est pas visible de l'extérieur, donc ton clearTimeout(timer) c'est équivalent à clearTimeout(null). Il faut que ton timer soit visible sur ta page.
 
Et ça marche :o au moins avec Firefox en tout cas.


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
n°1425959
bis2kt
Posté le 16-08-2006 à 12:39:19  profilanswer
 

effectivement, ça fonctionne très bien... sauf dans ma page.

n°1425969
brisssou
8-/
Posté le 16-08-2006 à 13:16:25  profilanswer
 

bha fait péter ta page complète...


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
n°1426044
bis2kt
Posté le 16-08-2006 à 14:34:39  profilanswer
 

je me suis mal exprimé, c'est à dire que ça fonctionne mais mal.  
Le scroll s'arrete (merci Brissou :jap: ) mais il est très lent et la console m'affiche :
 

Code :
  1. Avertissement : Élément référencé par son ID/NAME dans le contexte global. Utilisez la propriété standard du W3C document.getElementById() à la place.
  2. Fichier source : http://www.(...).com/artiste3.php?id=7
  3. Ligne : 22


 
alors que le scroll focntionne tres bien et sans message d'erreur si je fais une page test comme ça :

Code :
  1. <html>
  2. <head>
  3. <script type="text/javascript">
  4. var timer;
  5. function move_up() {
  6.     mon_div.scrollTop -=2;
  7.     timer=setTimeout('move_up();',20);
  8. }
  9. function move_down() {
  10.     mon_div.scrollTop +=2;
  11.     timer=setTimeout('move_down();',20);
  12. }
  13. </script>
  14. <style type="text/css">
  15. <!--
  16. #mon_div{
  17.     width:230px;
  18.     height:240px;
  19.     overflow:hidden;
  20. }
  21. #text{
  22.     font-family: Verdana, Arial, Helvetica, sans-serif;
  23.     font-size: 9px;
  24.     font-style: normal;
  25.     font-weight: normal;
  26.     color: #000000;
  27.     text-align: justify;
  28. }
  29. -->
  30. </style>
  31. </head>
  32. <body>
  33. <div id="mon_div">
  34. <div id="text">
  35. mon texte ... bla bla ... bla bla ... bla bla ... bla bla ... bla bla ...
  36. </div>
  37. </div>
  38. <a href="javascript:;" onMouseOut="clearTimeout(timer);" onMouseOver="move_up()">UP</a>
  39. <a href="javascript:;" onMouseOut="clearTimeout(timer);" onMouseOver="move_down()">DOWN</a>
  40. </body>
  41. </html>


 
bref... [:m1sery]

n°1426068
bis2kt
Posté le 16-08-2006 à 15:02:19  profilanswer
 

... très drôle. Je me suis dit : "tiens et si je testais sous un autre navigateur ?"
donc j'ai essayé sous mon browser préféré (Opera) et ça fonctionne très bien, puis sous le pire brower que je connaisse (IE), pareil.  
Donc je me suis dit : pourquoi ça marche pas sous Firefox ???
 
... (période de réfléxion intense)
 
... [:icon3] et si je fermais la console Javascript ?? ...
 
c'est toujours pareil  :pfff: on perd 2 jours sur un truc à la #@?!%!! ...


Message édité par bis2kt le 16-08-2006 à 15:08:54
n°1426070
brisssou
8-/
Posté le 16-08-2006 à 15:03:33  profilanswer
 

bha il te dit de faire

Code :
  1. document.getElementById(mon_div).scrollTop -= 2;


au lieu de

Code :
  1. mon_div.scrollTop -= 2;


 
à vu de nez


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
mood
Publicité
Posté le 16-08-2006 à 15:03:33  profilanswer
 

n°1426071
brisssou
8-/
Posté le 16-08-2006 à 15:04:06  profilanswer
 

étrange le coup de la console...


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
n°1426075
bis2kt
Posté le 16-08-2006 à 15:10:37  profilanswer
 

bah à mon avis c'est juste que firefox (ou le pc sur lequel je taf) sont pas assez intelligent pour faire un affichage dans la console et en même temps executer le code, donc ça lag un peu...

n°1426083
brisssou
8-/
Posté le 16-08-2006 à 15:24:20  profilanswer
 

hum... ok ok.
 
Donc ça marche :D


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  scroller un div grace au JS

 

Sujets relatifs
[JS/DOM] Bug sous IE, l'image se s'affiche pas ! [RESOLU]Scroller la fenetre pour afficher un élement
faire scroller du text hors d'un textField ?Impossible de scroller une div qd une image se trouve en dessous ?
tableau + scroller[Java]Fenetre de scroll: comment scroller automatiquement vers le bas?
[FlashMX] Scroller des objets/textes/clips[Oracle] SQL+ Impossible de scroller a droite
JAVA 2D & scroller un JPanelScroller automatiquement en bas une JTextArea dans un JScrollPane ?
Plus de sujets relatifs à : scroller un div grace au JS


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)