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

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Pbm avec 2 news défilantes

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Pbm avec 2 news défilantes

n°2113160
paulo75
Posté le 24-11-2011 à 19:14:43  profilanswer
 

Bonjour à tous,
 
Je rencontre un soucis avec le code d'une news défilante depuis que j'ai voulu le dupliquer pour afficher 2 blocs de news sur la même page.
 
Voici le code initial :
 
Dans le body :

Code :
  1. <DIV id='newsbox'>
  2.   <DIV id='newslist' style='visibility: hidden; float:left;'>
  3. Ma news défilante (...)
  4. Ma news défilante (...)
  5. Ma news défilante (...)
  6.   </DIV>
  7. </DIV>


 
Dans la CSS :

Code :
  1. #newsbox {
  2. height:100px;
  3. width:535px;
  4. float:left;
  5. position: relative;
  6. overflow: hidden;
  7. border-top-style: none;
  8. }
  9. #newslist {
  10. position: absolute;
  11. padding: 0 0.7m 0 0.2em;
  12. }


 
Et le JS :

Code :
  1. <SCRIPT language="javascript" type="text/javascript">
  2. var pos;
  3. var speed = 1;
  4. var pos_initial;
  5. function startAnim() {
  6. var e = document.getElementById('newsbox');
  7. pos_initial = e.clientHeight + 0;
  8. pos = pos_initial;
  9. setInterval('anim()', 70);
  10. }
  11. function anim() {
  12. var e = document.getElementById('newslist');
  13. e.style.visibility = 'visible';
  14. e.style.top = Math.floor(pos) + 'px';
  15. pos = pos - speed;
  16. if(pos < -e.clientHeight) pos = pos_initial;
  17. }
  18. window.onload = function() {
  19.   var e = document.getElementById('newsbox');
  20.   e.onmouseover = function() { speed = 0; };
  21.   e.onmouseout = function() { speed = 1; };
  22.   startAnim()
  23. };
  24. </SCRIPT>


 
Jusque ici tout va bien.
 
Mais plus rien ne marche dès que je veux créer une 2eme liste en dupliquant à l'identique le code dans le BODY.
 
Comme je me suis dit qu'il y avait certainement un problème de variables, j'ai dupliquer le code en rajoutant 1 et 2 à la fin des variables pour différencier complètement les 2 branches de code, ce qui donne ceci :
 
Dans le body :

Code :
  1. <DIV id='newsbox[b]1'>
  2. <DIV id='newslist1' style='visibility: hidden; float:left;'>
  3. Ma news défilante (...)
  4. Ma news défilante (...)
  5. Ma news défilante (...)
  6. </DIV>
  7. </DIV>
  8. <DIV id='newsbox2'>
  9. <DIV id='newslist2' style='visibility: hidden; float:left;'>
  10. Ma news défilante (...)
  11. Ma news défilante (...)
  12. Ma news défilante (...)
  13. </DIV>
  14. </DIV>


 
Dans la CSS :

Code :
  1. #newsbox1 {
  2. height:100px;
  3. width:535px;
  4. float:left;
  5. position: relative;
  6. overflow: hidden;
  7. border-top-style: none;
  8. }
  9. #newslist1 {
  10. position: absolute;
  11. padding: 0 0.7m 0 0.2em;
  12. }
  13. #newsbox2 {
  14. height:100px;
  15. width:535px;
  16. float:left;
  17. position: relative;
  18. overflow: hidden;
  19. border-top-style: none;
  20. }
  21. #newslist2 {
  22. position: absolute;
  23. padding: 0 0.7m 0 0.2em;
  24. }


 
Et le JS :

Code :
  1. <SCRIPT language="javascript" type="text/javascript">
  2. var pos1;
  3. var speed1 = 1;
  4. var pos_initial1;
  5. function startAnim1() {
  6. var e1 = document.getElementById('newsbox1');
  7. pos_initial1 = e1.clientHeight + 0;
  8. pos1 = pos_initial1;
  9. setInterval('anim1()', 70);
  10. }
  11. function anim1() {
  12. var e1 = document.getElementById('newslist1');
  13. e1.style.visibility = 'visible';
  14. e1.style.top = Math.floor(pos1) + 'px';
  15. pos1 = pos1 - speed1;
  16. if(pos1 < -e1.clientHeight) pos1 = pos_initial1;
  17. }
  18. window.onload = function() {
  19.   var e1 = document.getElementById('newsbox1');
  20.   e1.onmouseover = function() { speed1 = 0; };
  21.   e1.onmouseout = function() { speed1 = 1; };
  22.   startAnim1()
  23. };
  24. </SCRIPT>
  25. <SCRIPT language="javascript" type="text/javascript">
  26. var pos2;
  27. var speed2 = 1;
  28. var pos_initial2;
  29. function startAnim2() {
  30. var e2 = document.getElementById('newsbox2');
  31. pos_initial2 = e2.clientHeight + 0;
  32. pos2 = pos_initial2;
  33. setInterval('anim2()', 70);
  34. }
  35. function anim2() {
  36. var e2 = document.getElementById('newslist2');
  37. e2.style.visibility = 'visible';
  38. e2.style.top = Math.floor(pos2) + 'px';
  39. pos2 = pos2 - speed2;
  40. if(pos2 < -e2.clientHeight) pos2 = pos_initial2;
  41. }
  42. window.onload = function() {
  43.   var e2 = document.getElementById('newsbox2');
  44.   e2.onmouseover = function() { speed2 = 0; };
  45.   e2.onmouseout = function() { speed2 = 1; };
  46.   startAnim2()
  47. };
  48. </SCRIPT>


 
Hélas ca fonctionne toujours pas :cry:
 
Qqun voit-il l'erreur SVP ?
 
Un grand merci d'avance pour votre aide !


Message édité par paulo75 le 24-11-2011 à 19:17:28
mood
Publicité
Posté le 24-11-2011 à 19:14:43  profilanswer
 

n°2113177
paulo75
Posté le 24-11-2011 à 21:43:19  profilanswer
 

Apparemment le problème vient d'un conflit entre les 2 window.onload ...
 
Savez-vous comment on peut éviter çà ?
 
Merci.

n°2113188
SICKofitAL​L
misanthrope
Posté le 25-11-2011 à 00:28:07  profilanswer
 

ben regroupe le code du premier onload dans le second :o


---------------
We deserve everything that's coming...
n°2113199
paulo75
Posté le 25-11-2011 à 08:38:45  profilanswer
 

en effet c'était la bonne solution,
 
merci à toi !

n°2113212
paulo75
Posté le 25-11-2011 à 10:30:53  profilanswer
 

Par contre le script ne marche pas (la 2eme news ne s'affiche pas) avec les versions IE6 et IE7,
ca marche bien par contre pour IE8 et IE9 ... je m'en contenterai.


Message édité par paulo75 le 25-11-2011 à 21:31:01

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

  Pbm avec 2 news défilantes

 

Sujets relatifs
Téléchargement d'images pour formulaire de newsJS affichage de news les unes après les autres
Module de news en diapo d'images[java][PrintWriter] Pbm d'arrêt non commandé
Comment creer un rectangle en flash avec des news info?Problème avec news pour site web
Récupérer nom auteur d'une table newsNews Box
VBA Access! Pbm déclaration application ExcelFlux RSS sur news
Plus de sujets relatifs à : Pbm avec 2 news défilantes


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR