IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Modifier dynamiquement la couleur de fond


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 91
    Points : 56
    Points
    56
    Par défaut Modifier dynamiquement la couleur de fond
    Bonjour,

    pour mon site, j'aimerais pouvoir proposer aux visiteurs de personnaliser la couleur de fond selon leur préférence à l'aide d'un petit formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <form>
    	<select onChange="javascript:chgColor(this)">
    		<option value="0">noir</option>
    		<option value="1">gris</option>
    		<option value="2" selected="true">beige</option>
    		<option value="3">brun</option>
    		<option value="4">ocre</option>
    	</select>
    </form>
    J'utilise donc Javascript pour accéder à la propriété bgColor de la balise body :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    <script type="text/javascript">
    	function chgColor(selection){
    		var color = selection.options[selection.selectedIndex].value;
     
    		switch(name){
    			case 0: document.body.bgColor = "black"; break;
    			case 1: document.body.bgColor = "gray"; break;
    			case 2: document.body.bgColor = "#BA7741"; break;
    			case 3: document.body.bgColor = "#660000"; break;
    			case 4: document.body.bgColor = "#FFFF66"; break;
    			default: document.body.bgColor = "#BA7741"; break;
    		}
    	}
    </script>
    Le hic, c'est que rien ne se passe quand je choisis une autre couleur via le formulaire, pas d'erreurs javascript (en tout cas Firebug ne gueule pas ) mais pas de changement de couleur non plus.

    Ma fonction javascript est-elle correcte ?

    Merci d'avance pour votre aide

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    un switch sur name ...

    pourquoi pas... mais c'est quoi name ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 91
    Points : 56
    Points
    56
    Par défaut
    Effectivement !! J'ai honte

    Ce n'est pas "name" qu'il fallait lire mais "color", voilà le code corrigé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    <script type="text/javascript">
    	function chgColor(selection){
    		var color = selection.options[selection.selectedIndex].value;
     
    		switch(color){
    			case 0: document.body.bgColor = "black"; break;
    			case 1: document.body.bgColor = "gray"; break;
    			case 2: document.body.bgColor = "#BA7741"; break;
    			case 3: document.body.bgColor = "#660000"; break;
    			case 4: document.body.bgColor = "#FFFF66"; break;
    			default: document.body.bgColor = "#BA7741"; break;
    		}
    	}
    </script>
    Grosse bourde corrigée, merci SpaceFrog. Mais ça ne marche malheureusement pas plus

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 22
    Points : 16
    Points
    16
    Par défaut
    Est ce que tu recoit la variable? Met un alert("ma var"+color); dans ton code pour vérifier.

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    le select est un peu particulier, il faut passer this.value ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    <form>
    	<select onChange="chgColor(this.value)">
    		<option value="0">noir</option>
    		<option value="1">gris</option>
    		<option value="2" selected="true">beige</option>
    		<option value="3">brun</option>
    		<option value="4">ocre</option>
    	</select>
    </form>

    et du coup, sans oublier que les values sont des strings ..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <script type="text/javascript">
    	function chgColor(selection){
     
    		switch(selection){
    			case ("0"): document.body.bgColor = "black"; break;
    			case ("1"): document.body.bgColor = "gray"; break;
    			case ("2"): document.body.bgColor = "#BA7741"; break;
    			case ("3"): document.body.bgColor = "#660000"; break;
    			case ("4"): document.body.bgColor = "#FFFF66"; break;
    			default: document.body.bgColor = "#BA7741"; break;
    		}
    	}
    </script>
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  6. #6
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.body.bgColor =  "#BA7741";


    Utilise cette syntaxe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.body.style.backgroundColor = "#BA7741";

Discussions similaires

  1. Modifier dynamiquement la couleur d'une cellule
    Par Kraian dans le forum Powerbuilder
    Réponses: 1
    Dernier message: 14/03/2014, 19h57
  2. Modifier couleur de fond d'une cellule d'un tableau dynamiquement.
    Par fred61 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 27/03/2009, 02h19
  3. Réponses: 1
    Dernier message: 19/11/2007, 12h00
  4. [JTable] Modifier la couleur de fond d'une ligne
    Par joes_bushi dans le forum Composants
    Réponses: 2
    Dernier message: 20/09/2005, 12h13
  5. Modifier la couleur de fond d'un popupmenu
    Par lil_jam63 dans le forum Composants VCL
    Réponses: 6
    Dernier message: 05/08/2004, 20h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo