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


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.
 

Commentaires et avis

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

++

signaler à un administrateur
Commentaire de mahlaoui le 13/11/2008 00:58:42

Thanks

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

changer source iframe avec js sous differents browsers [ par martiall ] Salut &#224; toutes et tous,en essayant de faire simple....Sur ma page, j'ai une iframe du style :&lt;IFRAME id="toto" name="toto" src="page1.php" hei Changer le Background image via onmouseover [ par dorian53 ] Bonjour,J'ai une question de NB mais je n'ai pas trouvé ma réponse :Comment changer d'image (et pas couleur comme on trouve partout) en background sur changer de place à une <div> [ par mickael56100 ] Bonjour tout le monde je laisse un message sur ce forum car jai un petit probleme. En fait je m'y connais pas trop en javascript et j'aurais besoin de javascript [ par belkhayaty ] salut,dans quelques pages de codes-sources.com, il y a es zip à télécharger où il y a un fichier .swf et autre .fla moi je voulais un menu dynamique s Script javascript... [ par mydoom54 ] Bonjour, je voudrais avoir un code comme sa : PS: j'ai chercher partout j'ai pas trouverA B C D E F G H I J K L M N O P Q R S T U V W X Y Z            Traitement d'image et javascript [ par dd58007 ] Bonjour, Est-il possible de lire les pixels d'une image sur internet avec javascript, activeX....?Merci Formulaire Changer de focus avec la touche point [ par nzangel ] Bonjour,J'ai un formulaire qui demande une adresse IP, ce formulaire demande 4 champs et je voudrais savoir si il est possible de remplacer la touche passer une variable php dans du javascript [ par ciju ] Bonjour,J'ai un soucis d'exactitude dans la definition de mon code,  est ce quelqu'un pourrait  me donner la solution,  etant definitevement  nul !   calendar javascripte [ par arouwa ] Bonjour,je veux verifier si la date a été sélectionnée dans ma page, alors je vbeux le faire avec du javascripte alors je passe mon objet calendar dan Javascript unobtrusive [ par duterte ] Bonjour, Débutant en javascript, j'ai créé un script très utile pour afficher du contenu dynamique dans plusieurs div à la demande. Je souhaiterais re


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,374 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.