Changer l'img bg d'un onglet lorsqu'on clique dessus

Changer l'img bg d'un onglet lorsqu'on clique dessus - HTML/CSS - Programmation

Marsh Posté le 19-01-2010 à 20:33:10    

Bonjour,
 
Voilà, je suis confronté à un petit problème.
 
Le menu de mon site est sous forme d'onglet (chacun ayant une image background qui change en fonction du hover)
 
J'aimerais qu'à chaque fois qu'on atterrit sur une nouvelle page (via ces onglets), le background de l'onglet passe de menu-bg.png à menu-hover.png
 
Ce menu onglet étant codé sur ma page index.php, il ne m'est pas possible de modifier cela manuellement pour chacune des pages, vu que je fais appel aux pages via un include (et donc index.php?lien=page**)
 
Ainsi, dans mon Menu, nous avons
 
Rubrique1 ; Rubrique2 ; Rubrique 3
 
Voici le code de mon menu + le CSS correspondant

Code :
  1. <ul id="menu1" style="font-family:"Arial"">
  2.   <li><a href="index.php?lien=accueil">Accueil</a></li>
  3.             <li><a href="index.php?lien=ceics">Le CEICS</a></li>
  4.             <li><a href="index.php">Ev&egrave;nements notables</a>
  5.             <ul id="menu2">
  6.             <li><a href="index.php?lien=ski"><center>S&eacute;jour au Ski</center></a></li>
  7.             <li><a href="index.php?lien=bal"><center>Bal de l'IHECS</center></a></li>
  8.             <li><a href="index.php?lien=ndm"><center>Nuit des M&eacute;dias</center></a></li>
  9.             </ul>
  10.             </li>
  11.             <li><a href="index.php?lien=elections">Elections</a></li>
  12.   <li><a href="index.php?lien=membres">Membres</a></li>
  13.   <li><a href="index.php?lien=agenda">Agenda</a></li>
  14.   <li><a href="index.php?lien=photos">Photos</a></li>
  15.   <li><a href="http://ceics.lolforum.net" target="_blank">Forum</a></li>
  16.    <li><a href="index.php?lien=liens">Liens</a></li>
  17.  </ul>
  18. #menu1 {
  19. height:35px;
  20. line-height:35px;
  21. background:url(images/bg-menu.png) repeat-x;
  22. padding:0 10px;s
  23. font-size: 10pt;
  24. font-family:"Arial";
  25. }
  26. #menu1 ul {
  27. list-style-type:none;
  28. }
  29. #menu1 li {
  30. float:left;
  31. }
  32. #menu1 li a {
  33. padding:0 15px;
  34. display:block;
  35. color:#ffffff;
  36. margin-right:2px;
  37. }
  38. #menu1 li a:hover {
  39. background:url(images/bg-menu-hover.png) no-repeat center center;
  40. }
  41. #menu2 ul {
  42. list-style-type:none;
  43. }
  44. #menu2 li {
  45. float:center;
  46. width:142px;
  47. }
  48. #menu2 li a {
  49. padding:0 15px;
  50. display:block;
  51. color:#ffffff;
  52. margin-right:2px;
  53. }
  54. #menu2 li a:hover {
  55. background:url(images/bg-menu-hover2.png) no-repeat center center;
  56. width:auto;
  57. }


 
 
Si je clic sur Rubrique 2, j'aimerais que l'onglet change (que son background devienne bg-menu-hover.png au lieu de bg-menu.png), afin que l'internaute sache exactement où il est sur le site
 
Je ne sais pas si je me fais bien comprendre en fait...
 
Enfin, d'avance merci pour vos réponses!

Reply

Marsh Posté le 19-01-2010 à 20:33:10   

Reply

Marsh Posté le 20-01-2010 à 11:36:13    

Personne?

Reply

Marsh Posté le 20-01-2010 à 12:18:33    

il faut que tu rajoute une classe genre ".active" à l'onglet ouvert (que tu connais forcément puisque tu fais un include juste après). ensutie tu redéfini le background:url pour la classe ".active".

Reply

Marsh Posté le 20-01-2010 à 12:22:30    

Merci pour la réponse
 
Malheureusement, je ne connais pas l'onglet ouvert, vu que mon menu se situe dans la page index.php, et c'est à partir de cette page index.php que je fais un include vers une page quelconque.
 
Ainsi, si on prend la page "liens.php", elle ne contient que le contenu de la page.

Reply

Marsh Posté le 20-01-2010 à 17:32:52    

si tu fais un include c'est bien que tu sais quelle page va être appelée non? donc tu fais un truc du genre:

Code :
  1. <ul id="menu1" style="font-family:"Arial"">
  2.   <li class="<? if ($page="accueil" ) print("active" ); ?>"><a href="index.php?lien=accueil">Accueil</a></li>
  3.             <li class="<? if ($page="ceics" ) print("active" ); ?>"><a href="index.php?lien=ceics">Le CEICS</a></li>
  4.             <li><a href="index.php">Evènements notables</a>
  5.             <ul id="menu2">
  6.             <li class="<? if ($page="ski" ) print("active" ); ?>"><a href="index.php?lien=ski"><center>Séjour au Ski</center></a></li>
  7.             <li class="<? if ($page="bal" ) print("active" ); ?>"><a href="index.php?lien=bal"><center>Bal de l'IHECS</center></a></li>
  8.             <li class="<? if ($page="ndm" ) print("active" ); ?>"><a href="index.php?lien=ndm"><center>Nuit des Médias</center></a></li>
  9.             </ul>
  10.             </li>
  11. </ul>


 
etc...
 
[HS]après j'aime pas cette manière d'inclure le body de la page, je préfère avoir des pages qui appellent leur header/footer, mais c'est mon avis perso...

Reply

Marsh Posté le 20-01-2010 à 21:18:59    

Quand je fais ça, voilà l'erreur que j'obtiens:
 
Warning: main(agenda) [function.main]: failed to open stream: No such file or directory in /homez.65/ceics/www/test/index.php on line 58
 
Warning: main() [function.include]: Failed opening 'agenda' for inclusion (include_path='.:/usr/local/lib/php') in /homez.65/ceics/www/test/index.php on line 58
 
Et la ligne 58 de mon index.php est justement:
 
 
<?php include $page; ?>

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed