Tom's Guide > Forum > Programmation > [Résolu]Cacher des blocs DIV à l'ouverture de la page.

[Résolu]Cacher des blocs DIV à l'ouverture de la page.

Forum Programmation : [Résolu]Cacher des blocs DIV à l'ouverture de la page.

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

Tout dabord, bonjour à tous !
Après quelques recherches sur le net, j'ai trouvé un script sympa qui permet via un lien d'ouvrir et de fermer un bloc DIV en JavaScript. Jusque-là, tout va bien. Mais, j'ai voulu, pour le design de mon site, que les blocs restent cachés à l'ouverture de la page. Malheureusement, après tout ce que j'ai fais, je n'ai pas réussi à avoir ce que je voulais. J'ai décidé donc de faire appel à vous, qui sait, peut-être que j'ai raté une étape.

Voici le code à mettre entre les balises Head :

Code :
  1. <style type="text/css" media="all">
  2.     /* Ce style CSS ne dois pas être enlevé, sinon les divs ne se cacherons pas ... */
  3.     .cachediv {
  4.         visibility: hidden;
  5.         overflow: hidden;
  6.         height: 1px;
  7.         margin-top: -1px;
  8.         position: absolute;
  9.     }
  10. </style>
  11. <!-- Script créé par KevBrok ;-) -->
  12. <script type="text/javascript">
  13.     /*
  14.     * Montre / Cache un div
  15.     */
  16.     function DivStatus( nom, numero )
  17.         {
  18.             var divID = nom + numero;
  19.             if ( document.getElementById && document.getElementById( divID ) ) // Pour les navigateurs récents
  20.                 {
  21.                     Pdiv = document.getElementById( divID );
  22.                     PcH = true;
  23.                  }
  24.             else if ( document.all && document.all[ divID ] ) // Pour les veilles versions
  25.                 {
  26.                     Pdiv = document.all[ divID ];
  27.                     PcH = true;
  28.                 }
  29.             else if ( document.layers && document.layers[ divID ] ) // Pour les très veilles versions
  30.                 {
  31.                     Pdiv = document.layers[ divID ];
  32.                     PcH = true;
  33.                 }
  34.             else
  35.                 {
  36.                     PcH = false;
  37.                 }
  38.             if ( PcH )
  39.                 {
  40.                     Pdiv.className = ( Pdiv.className == 'cachediv' ) ? '' : 'cachediv';
  41.                 }
  42.         }
  43.     /*
  44.     * Cache tous les divs ayant le même préfixe
  45.     */
  46.     function CacheTout( nom )
  47.         {
  48.             var NumDiv = 1;
  49.             if ( document.getElementById ) // Pour les navigateurs récents
  50.                 {
  51.                     while ( document.getElementById( nom + NumDiv) )
  52.                         {
  53.                             SetDiv = document.getElementById( nom + NumDiv );
  54.                             if ( SetDiv && SetDiv.className != 'cachediv' )
  55.                                 {
  56.                                     DivStatus( nom, NumDiv );
  57.                                 }
  58.                             NumDiv++;
  59.                         }
  60.                 }
  61.             else if ( document.all ) // Pour les veilles versions
  62.                 {
  63.                     while ( document.all[ nom + NumDiv ] )
  64.                         {
  65.                             SetDiv = document.all[ nom + NumDiv ];
  66.                             if ( SetDiv && SetDiv.className != 'cachediv' )
  67.                                 {
  68.                                     DivStatus( nom, NumDiv );
  69.                                 }
  70.                             NumDiv++;
  71.                         }
  72.                 }
  73.             else if ( document.layers ) // Pour les très veilles versions
  74.                 {
  75.                     while ( document.layers[ nom + NumDiv ] )
  76.                         {
  77.                             SetDiv = document.layers[ nom + NumDiv ];
  78.                             if ( SetDiv && SetDiv.className != 'cachediv' )
  79.                                 {
  80.                                     DivStatus( nom, NumDiv );
  81.                                 }
  82.                             NumDiv++;
  83.                         }
  84.                 }
  85.         }
  86.     /*
  87.     * Montre tous les divs ayant le même préfixe
  88.     */
  89.     function MontreTout( nom )
  90.         {
  91.             var NumDiv = 1;
  92.             if ( document.getElementById ) // Pour les navigateurs récents
  93.                 {
  94.                     while ( document.getElementById( nom + NumDiv) )
  95.                         {
  96.                             SetDiv = document.getElementById( nom + NumDiv );
  97.                             if ( SetDiv && SetDiv.className != '' )
  98.                                 {
  99.                                     DivStatus( nom, NumDiv );
  100.                                 }
  101.                             NumDiv++;
  102.                         }
  103.                 }
  104.             else if ( document.all ) // Pour les veilles versions
  105.                 {
  106.                     while ( document.all[ nom + NumDiv ] )
  107.                         {
  108.                             SetDiv = document.all[ nom + NumDiv ];
  109.                             if ( SetDiv && SetDiv.className != '' )
  110.                                 {
  111.                                     DivStatus( nom, NumDiv );
  112.                                 }
  113.                             NumDiv++;
  114.                         }
  115.                 }
  116.             else if ( document.layers ) // Pour les très veilles versions
  117.                 {
  118.                     while ( document.layers[ nom + NumDiv ] )
  119.                         {
  120.                             SetDiv = document.layers[ nom + NumDiv ];
  121.                             if ( SetDiv && SetDiv.className != '' )
  122.                                 {
  123.                                     DivStatus( nom, NumDiv );
  124.                                 }
  125.                             NumDiv++;
  126.                         }
  127.                 }
  128.         }
  129.     /*
  130.     * Inverse les divs: Cache les divs visible et montre le divs cachés :)
  131.     */
  132.     function InverseTout( nom )
  133.         {
  134.             var NumDiv = 1;
  135.             if ( document.getElementById ) // Pour les navigateurs récents
  136.                 {
  137.                     while ( document.getElementById( nom + NumDiv ) )
  138.                         {
  139.                             SetDiv = document.getElementById( nom + NumDiv );
  140.                             DivStatus( nom, NumDiv );
  141.                             NumDiv++;
  142.                         }
  143.                 }
  144.             else if ( document.all ) // Pour les veilles versions
  145.                 {
  146.                     while ( document.all[ nom + NumDiv ] )
  147.                         {
  148.                             SetDiv = document.all[ nom + NumDiv ];
  149.                             DivStatus( nom, NumDiv );
  150.                             NumDiv++;
  151.                         }
  152.                 }
  153.             else if ( document.layers ) // Pour les très veilles versions
  154.                 {
  155.                     while ( document.layers[ nom + NumDiv ] )
  156.                         {
  157.                             SetDiv = document.layers[ nom + NumDiv ];
  158.                             DivStatus( nom, NumDiv );
  159.                             NumDiv++;
  160.                         }
  161.                 }
  162.         }
  163. </script>



Et voici le code à mettre entre la balise Body :

Code :
  1. <a href="javascript:DivStatus( 'mondiv', '1' )">Ouvrir/Fermer le Bloc 1</a><br />
  2. <div name="mondiv1" id="mondiv1"><div style="border: 3px dashed white; background-color: #cce698; margin-bottom: 2px;">Voilà ce que l'on met dans le bloc...</div></div>


Message édité par yuna57 le 05-10-2007 à 21:02:58
Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

le code CSS, visibility: hidden; cache le bloc mais l'espace est réservé !

 

donc il faut utiliser, display: none; pour supprimé l'espace réservé,

 

et pour l'afficher , display: block;


Message édité par OmegaClaw le 04-10-2007 à 21:59:26
Répondre à OmegaClaw

Merci de ton aide.
Mais, j'ai testé, et à l'ouverture de la page, les blocs restent ouvertes.
Moi ce que je veux, c'est que les blocs restent fermés, et que le visiteur clique sur les liens ( qui permettent d'ouvrir et de fermer les blocs, sur ça, j'ai pas de problème ) pour ouvrir le bloc en question.

Répondre à yuna57
- 0 +

Et bien, au départ tu mets display: none;

Et quand ils ont cliqué display: block;

Répondre à OmaR

Désolé, je pense que j'ai du mal à saisir. Je veux bien mettre les display, mais où, je suis totalement perdu. Si je mets ca dans le CSS, ca n'apporte pas grand chose, ca ne marche pas.
Merci d'avance.

PS: J'ai trouvé la solution. Il suffit de mettre class='cachediv' dans le bloc qu'on veut garder fermé.
Merci quand même.


Message édité par yuna57 le 05-10-2007 à 20:55:47
Répondre à yuna57
Tom's Guide > Forum > Programmation > [Résolu]Cacher des blocs DIV à l'ouverture de la page.
Aller à :

Il y a 1339 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens