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

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [réglé] afficher/cacher un div toutes les secondes.

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[réglé] afficher/cacher un div toutes les secondes.

n°1498351
Niko80
Posté le 03-01-2007 à 17:04:30  profilanswer
 

Bonjour, j'ai 2 div:
 

Code :
  1. <div id="Layer1"></div>
  2. <div id="Layer2"></div>


 
Je souhaite toutes les x secondes, (par exemple 3), afficher Layer1 (cacher Layer2), puis afficher Layer2 (et cacher Layer1).
 
Comment pourrais-je faire ?  
 
J'ai un script qui permet de faire ce changement quand je passe dessus ou en dehors d'un lien. Comment l'adapter pour qu'il automatiquement, sans intervention de ma part ?
 
 
 
 

Code :
  1. <script type="text/JavaScript">
  2. <!--
  3. function MM_findObj(n, d) { //v4.01
  4.   var p,i,x;  if(!d) d=document; if((p=n.indexOf("?" ))>0&&parent.frames.length) {
  5.     d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  6.   if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  7.   for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  8.   if(!x && d.getElementById) x=d.getElementById(n); return x;
  9. }
  10. function MM_showHideLayers() { //v6.0
  11.   var i,p,v,obj,args=MM_showHideLayers.arguments;
  12.   for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
  13.     if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
  14.     obj.visibility=v; }
  15. }
  16. //-->
  17. </script>


 
 
 

Code :
  1. <a href="#" onmouseover="MM_showHideLayers('Layer1','','show','Layer2','','hide')" onmouseout="MM_showHideLayers('Layer1','','hide','Layer2','','show')">jljlkjll</a>


Message édité par Niko80 le 06-01-2007 à 12:32:29
mood
Publicité
Posté le 03-01-2007 à 17:04:30  profilanswer
 

n°1498373
anapajari
s/travail/glanding on hfr/gs;
Posté le 03-01-2007 à 17:37:56  profilanswer
 

la fonction js que tu cherches c'est setInterval !
et dreamweaver ça pue :o

n°1498416
Niko80
Posté le 03-01-2007 à 19:22:20  profilanswer
 

heu merci mais je ne connais rien à JS :/
 
un petit un exemple ?

n°1498473
ClD
Mon mononyme : C!d
Posté le 03-01-2007 à 21:52:02  profilanswer
 

un truc du genre :
 

Code :
  1. var etat_altern = 0;
  2. function altern(){
  3. if(etat_altern==0){
  4. etat_altern = 1;
  5. Layer1.style.visibility = 'hidden';
  6. Layer2.style.visibility = 'visible';
  7. }
  8. else{
  9. etat_altern = 0;
  10. Layer1.style.visibility = 'visible';
  11. Layer2.style.visibility = 'hidden';
  12. }
  13. setTimeout("altern()",1000);
  14. }
  15. altern();


 
le 1000 corespond à 1000 millièmes de secondes donc une seconde, là tu peux mettre ce que tu veux, 2000 pour 2 secondes, 500 pour une demis seconde etc...


---------------
NOUVEAU!! Février 2024 : j'ai créé un nouveau jeu en ligne : https://www.boblybots.com
n°1498872
Niko80
Posté le 04-01-2007 à 14:43:42  profilanswer
 

merci c'est sympa mais ça ne marche pas ... :(

n°1498877
rufo
Pas me confondre avec Lycos!
Posté le 04-01-2007 à 14:54:12  profilanswer
 

Niko80 a écrit :

merci c'est sympa mais ça ne marche pas ... :(


 
normal, ça, c'est du code pour Netscape :p  
Un petit bout de code pour afficher/cacher toutes les 10 secondes <div id="test">...</div>

Code :
  1. setInterval('showHide', 10000);
  2. function showHide() {
  3.     obj = document.getElementById('test');
  4.    
  5.     if (obj.style.display == 'none') {
  6.         obj.style.display = 'block';  // pour afficher
  7.     } else {
  8.         obj.style.display = 'none';  // pour cacher.
  9.     }
  10. }


 
edit : j'avais pas vu que Layer était un ID et non un objet...désolé. Quand je vois layer, je pense de suite à Netscape...


Message édité par rufo le 04-01-2007 à 15:28:56
n°1498880
ClD
Mon mononyme : C!d
Posté le 04-01-2007 à 14:57:07  profilanswer
 

je viens de le tester, ça marche trés bien
 
bien entendu, le script que j'ai donné, il faut le mettre entre les balises qui délimite le programme javascript
 
<script type="text/JavaScript">
 
et
 
</script>
 
il faut aussi qu'il y ait les 2 div sur la page avec les identité que tu a donné et qu'il n'y ait pas d'autre programme javascript qui provoque des erreurs sur cette même page


---------------
NOUVEAU!! Février 2024 : j'ai créé un nouveau jeu en ligne : https://www.boblybots.com
n°1498889
gatsu35
Blablaté par Harko
Posté le 04-01-2007 à 15:07:37  profilanswer
 

Code :
  1. setInterval('showHide()', 1000);
  2.     function showHide() {
  3.        obj = document.getElementById('test');
  4.        if (obj) with(obj.style) visibility = visibility=="hidden" ? "visible" : "hidden";
  5.     }


Message édité par gatsu35 le 04-01-2007 à 15:50:30
n°1498910
rufo
Pas me confondre avec Lycos!
Posté le 04-01-2007 à 15:30:19  profilanswer
 

Niko80, ça serait pas pour émuler le clignotage de liens ton affaire, là?

n°1499053
Niko80
Posté le 04-01-2007 à 21:13:21  profilanswer
 

CID j'ai bien fait comme tu m'a dit, testé sur IE et firefox. mais rien ne se passe... voila ma page html :
 

Code :
  1. <html>
  2. <head>
  3. <style type="text/css">
  4. <!--
  5. #Layer1 {
  6. position:absolute;
  7. left:171px;
  8. top:50px;
  9. width:406px;
  10. height:320px;
  11. z-index:1;
  12. background-color: #00FF00;
  13. }
  14. #Layer2 {
  15. position:absolute;
  16. left:199px;
  17. top:40px;
  18. width:346px;
  19. height:362px;
  20. z-index:2;
  21. background-color: #FF0000;
  22. }
  23. -->
  24. </style>
  25. <script type="text/JavaScript">
  26.       var etat_altern = 0;
  27.    
  28.      function altern(){
  29.       if(etat_altern==0){
  30.       etat_altern = 1;
  31.       Layer1.style.visibility = 'hidden';
  32.       Layer2.style.visibility = 'visible';
  33.       }
  34.       else{
  35.       etat_altern = 0;
  36.       Layer1.style.visibility = 'visible';
  37.      Layer2.style.visibility = 'hidden';
  38.       }
  39.       setTimeout("altern()",1000);
  40.       }
  41.         altern();   
  42.  
  43. </script>
  44. </head>
  45. <body>
  46. <div id="Layer1"></div>
  47. <div id="Layer2"></div>
  48. </body>
  49. </html>


 
 
rufo, non en fait c'est pour afficher afficher un table de données mysql toute les x secondes sans refresh. Vu que ça à l'air plutot compliqué à faire avec ajax (cf mon post http://forum.hardware.fr/hfr/Progr [...] 9813_1.htm   0 réponses).
 
Ce que je compte faire c'est mettre une iframe dans chaque div, avec un refresh html auto dans chacune des iframes. Avec un bon timing d'affichage des div, ça devrait donner l'illusion d'un flux continu de données sans décalage de page qui aurait lieu en temps normal avec un refresh html. :)

mood
Publicité
Posté le 04-01-2007 à 21:13:21  profilanswer
 

n°1499057
0x90
Posté le 04-01-2007 à 21:18:04  profilanswer
 

<blink><div id="Layer1"></div></blink>
<blink><div id="Layer2"></div></blink>

 

[:chrisbk]


Message édité par 0x90 le 04-01-2007 à 21:18:12

---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1499070
ClD
Mon mononyme : C!d
Posté le 04-01-2007 à 22:04:49  profilanswer
 

ça marche si tu met le script aprés les div, car si tu le met dans head la fonction se lance avant que les identités soit données
 

Code :
  1. <html><head>
  2. <style type="text/css">
  3. <!--
  4. #Layer1 {
  5. position:absolute;
  6. left:171px;
  7. top:50px;
  8. width:406px;
  9. height:320px;
  10. z-index:1;
  11. background-color: #00FF00;
  12. }
  13. #Layer2 {
  14. position:absolute;
  15. left:199px;
  16. top:40px;
  17. width:346px;
  18. height:362px;
  19. z-index:2;
  20. background-color: #FF0000;
  21. }
  22. -->
  23. </style>
  24. </head>
  25. <body>
  26. <div id="Layer1"></div>
  27. <div id="Layer2"></div>
  28. <script type="text/JavaScript">
  29. var etat_altern = 0;
  30. function altern(){
  31. if(etat_altern==0){
  32.  etat_altern = 1;     
  33.  document.getElementById('Layer1').style.visibility = 'hidden';
  34.  document.getElementById('Layer2').style.visibility = 'visible';
  35.  }
  36. else{
  37.  etat_altern = 0;
  38.  document.getElementById('Layer1').style.visibility = 'visible';
  39.  document.getElementById('Layer2').style.visibility = 'hidden';
  40.  }
  41. setTimeout("altern()",1000);
  42. }
  43. altern();
  44. </script>
  45. </body>
  46. </html>


 
j'ai aussi rajouté les document.getElementById, même si sans ça fonctionne quand même


---------------
NOUVEAU!! Février 2024 : j'ai créé un nouveau jeu en ligne : https://www.boblybots.com
n°1499170
rufo
Pas me confondre avec Lycos!
Posté le 05-01-2007 à 10:13:21  profilanswer
 

c'est normal les balises commentaires dans la feuille de styles <style type="text/css">???

n°1499707
Niko80
Posté le 06-01-2007 à 12:32:50  profilanswer
 

merci beaucoup ça marche CID


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

  [réglé] afficher/cacher un div toutes les secondes.

 

Sujets relatifs
Faire afficher un JPanel lors d'un evenement avec ActionlistenerAfficher chemin absolu avec la commande ls
AJAX : Update d'une table mysql toutes les secondes sans refresh[Réglé] mettre un progamme en ligne ??
[reglé]Compilation source VB en DLLAfficher le contenu d'un site en php
Regle dans le Makefile pour effacer un repertoire apres CTRL+C ?Afficher les valeurs d'un type.
afficher une nouvelle pageRègle Url Rewriting
Plus de sujets relatifs à : [réglé] afficher/cacher un div toutes les secondes.


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