begin process at 2008 08 29 02:33:54
1 233 485 membres
26 nouveaux aujourd'hui
14 291 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CHANGER LA CLASSE CSS D'UN ÉLÉMENT AVEC JAVASCRIPT


Information sur la source

Description

Changer une classe de feuille de style avec Javascript est en fait simple. Ici, l'exemple reprend un système d'onglets utilisés normallement avec ajax...

Source

  • <html>
  • <head>
  • <script>
  • v_menuitemactu = 'null'; //Page d'acceuil (il n'y a pas d'onglet sélectionné)
  • //Appel de la page...
  • //file ne sert ici à rien
  • //menuclick est l'id de l'objet sur lequel on clique
  • function LoadPage(file, menuclick){
  • //...
  • //on remet l'ancienne classe pour l'ancien élément. Attention qu'il est possible qu'aucun ne soit utilisé, à ce moment, il faut faire une condition pour éviter d'interrompre la fonction
  • if(v_menuitemactu != 'null') document.getElementById(v_menuitemactu).className = "menuitem";
  • //Mise à jour de l'onglet actuel
  • v_menuitemactu = menuclick;
  • //On change le style de l'onglet qui vient d'être sélectionné
  • document.getElementById(v_menuitemactu).className = "menuitemactu";
  • }
  • </script>
  • <style type="text/css">
  • /* !! Attention, ici, seules les images changent !! */
  • /*Onglet non sélectionné...*/
  • td.menuitem{
  • height: 35px;
  • width: 200px;
  • background-image: url("../images/menubutton_noselect.png");
  • text-align: left;
  • padding-left: 12px;
  • }
  • /* Onglet non-sélectionné survolé */
  • td.menuitem:hover{
  • background-image: url("../images/menubutton_mouseon.png");
  • }
  • /* Onglet sélectionné */
  • td.menuitemactu{
  • height: 35px;
  • width: 200px;
  • background-image: url("../images/menubutton_select.png");
  • text-align: left;
  • padding-left: 12px;
  • }
  • </style>
  • </head>
  • <body>
  • <table width=200 cellpadding=0 cellspacing=0 border=0>
  • <tr><td id="ml_01" class="menuitem" onclick="LoadPage('test.html', 'ml_01');"><a href="#" class="menulink">Mon Compte</a></td></tr>
  • <tr><td id="ml_02" class="menuitem" onclick="LoadPage('test.html', 'ml_02');"><a href="#" class="menulink">Carte</td></tr>
  • <tr><td id="ml_03" class="menuitem" onclick="LoadPage('test.html', 'ml_02');><a href="#" class="menulink">Mes Villes</td></tr>
  • <tr><td id="ml_04" class="menuitem" onclick="LoadPage('test.html', 'ml_02');><a href="#" class="menulink">Explorateur</td></tr>
  • </table>
  • </body>
<html>
<head>
<script>
v_menuitemactu = 'null'; //Page d'acceuil (il n'y a pas d'onglet sélectionné)

	//Appel de la page...	
        //file ne sert ici à rien
        //menuclick est l'id de l'objet sur lequel on clique
	function LoadPage(file, menuclick){
		//...	

		//on remet l'ancienne classe pour l'ancien élément. Attention qu'il est possible qu'aucun ne soit utilisé, à ce moment, il faut faire une condition pour éviter d'interrompre la fonction
		if(v_menuitemactu != 'null') document.getElementById(v_menuitemactu).className  = "menuitem"; 
		//Mise à jour de l'onglet actuel
                v_menuitemactu = menuclick;
                //On change le style de l'onglet qui vient d'être sélectionné
		document.getElementById(v_menuitemactu).className  = "menuitemactu";
	}
</script>

<style type="text/css">
/* !! Attention, ici, seules les images changent !! */
/*Onglet non sélectionné...*/
td.menuitem{
	height: 35px;
	width: 200px;
	background-image: url("../images/menubutton_noselect.png");
	text-align: left;
	padding-left: 12px;
}
/* Onglet non-sélectionné survolé */
td.menuitem:hover{
	background-image: url("../images/menubutton_mouseon.png");
}
/* Onglet sélectionné */
td.menuitemactu{
	height: 35px;
	width: 200px;
	background-image: url("../images/menubutton_select.png");
	text-align: left;
	padding-left: 12px;
}
</style>
</head>
<body>
	<table width=200 cellpadding=0 cellspacing=0 border=0>
		<tr><td id="ml_01" class="menuitem" onclick="LoadPage('test.html', 'ml_01');"><a href="#" class="menulink">Mon Compte</a></td></tr>
		<tr><td id="ml_02" class="menuitem" onclick="LoadPage('test.html', 'ml_02');"><a href="#" class="menulink">Carte</td></tr>
		<tr><td id="ml_03" class="menuitem" onclick="LoadPage('test.html', 'ml_02');><a href="#" class="menulink">Mes Villes</td></tr>
		<tr><td id="ml_04" class="menuitem" onclick="LoadPage('test.html', 'ml_02');><a href="#" class="menulink">Explorateur</td></tr>		
	</table>
</body>

Conclusion

Ayant une longue recherche sur Exalead, je n'ai pas trouvé de source faisant ce que fait celle-ci... Donc, voilà! Je pense que cela servira à beaucoup.

Je l'ai testé sous Firefox et cela marche parfaitement. À vous d'adapter selon vos besoins.
Je l'ai mis dans cette cathégorie, car elle est applicable à bien plus qu'un simple système d'onglet.
  • signaler à un administrateur
    Commentaire de cheveche4 le 17/03/2008 18:46:35

    Juste un petit commentaire: les liens utilisent un style que je n'ai pas définit dans la source.

  • signaler à un administrateur
    Commentaire de Arto_8000 le 17/03/2008 21:10:02

    C'est davantage un snippet qu'une source et honnêtement l'attribut className est loin d'être quelque chose de méconnu en Javascript. Cette source risque d'être supprimé par un administateur.

  • signaler à un administrateur
    Commentaire de XtremDuke le 18/03/2008 11:47:55

    Même remarque que Arto_8000.

    Tu aurais pu, par exemple, montrer comment implémenter plusieurs classes, en ajouter une, en supprimer une, vérifier l'existence d'une classe, etc...

  • signaler à un administrateur
    Commentaire de cheveche4 le 18/03/2008 18:30:23

    Ben tant pis alors, je pensais que ce serait utile...

  • signaler à un administrateur
    Commentaire de Equilibrius le 25/07/2008 16:21:02

    Merci pour la source, moi sa ma appris un truc :p

    ++

Ajouter un commentaire

Pub



Appels d'offres

Recherche developpeur ...
Budget : 700€
SITE MARCHAND LOCATION...
Budget : 3 000€
SITE MARCHAND POUR HOTEL
Budget : 4 000€

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

Téléchargements

Boutique

Boutique de goodies CodeS-SourceS