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 :

Changer plusieurs fois la couleur d'un texte en cliquant sur des boutons


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Artiste plasticien
    Inscrit en
    Novembre 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Artiste plasticien
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Novembre 2017
    Messages : 3
    Par défaut Changer plusieurs fois la couleur d'un texte en cliquant sur des boutons
    Bonjour,

    Pour commencer j'arrive à m'en sortir en html et css mais je ne suis pas du tout un as en script, et je pense que j'ai besoin de passer par un script pour réaliser le projet que j'ai en tête.

    Alors, j'ai le but de modifier un texte via deux boutons. A la base le texte est en gris 50%, plus on clique sur le premier bouton plus le texte tend vers le blanc et à l'opposé plus on clique sur le second bouton plus le texte tend vers le noir.
    Ainsi, au fur et à mesure des clics, on peut constater l'évolution de la couleur du texte, en sachant que j'aimerai que ça "perdure sur le temps", que ça ne revienne pas à un gris 50% à chaque actualisation de la page.

    Étant pas du tout familier au script j'avoue ne pas savoir vers où commencer ! Si ça ne vous parait pas clair pour le traduire en script, n'hésitez pas à m'en demander plus !

    Merci d'avance si vous prenez le temps de me répondre.

    Cordialement,
    CaseVide

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 670
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 670
    Par défaut
    En ce qui concerne les boutons qui modifient une couleur, c'est faisable en JavaScript. À chaque action sur le bouton, le code JavaScript modifiera le code CSS qui définit la couleur.

    Par contre pour garder en "mémoire" le choix de la couleur, il faudra utiliser un langage côté serveur comme PHP. Il faudra définir si la couleur est affiché seulement à l'utilisateur courant ? Et si cet utilisateur c'est identifié ? Ou alors la couleur modifiée est montrée à tous les visiteurs du site ?

  3. #3
    Membre Expert
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2005
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 644
    Par défaut
    Pour la partie javascript, un bout de code :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
    <!DOCTYPE html>
    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Page Title</title>
    </head>
     
    <body>
    <script>
        var TabBut=[],TabFunctionClic=[];
        var x=0.5;
        var montexte="Chaîne de caractères et canal alpha.";
        var divtext=document.createElement('div');
         divtext.style.width=700+"px";
         divtext.style.height=40+"px";
         divtext.style.position="absolute";
         divtext.style.left=200+"px";
         divtext.style.top=10+"px";
         divtext.style.font= "bold 40px arial";
         divtext.style.color= 'rgba(0,0,0,'+x+')';
         divtext. textContent =montexte;
         document.body.appendChild(divtext);
         
         TabFunctionClic[0]=function(){
          if (x>0.00) x-=0.10;
          divtext.style.color= 'rgba(0,0,0,'+x+')'; 
          divtext.textContent =montexte;
        };
        
        TabFunctionClic[1]=function(){
          if (x<1) x+=0.10;
          divtext.style.color= 'rgba(0,0,0,'+x+')'; 
          divtext.textContent =montexte;
        };
        
     
        for(var i=0;i<=1;i++){
            TabBut[i]=document.createElement('input');
            TabBut[i].type='button';
            TabBut[i].style.width=160+"px";
            TabBut[i].style.height=40+"px";
            TabBut[i].style.position="absolute";
            TabBut[i].style.left=10+"px";
            
           if (i===0){
            TabBut[i].style.top=10+"px";
            TabBut[i].value="éclaicir";
            }
            else {
                TabBut[i].style.top=50+"px";
                TabBut[i].value="foncer";
            }
            document.body.appendChild(TabBut[i]);
            TabBut[i].addEventListener('click',TabFunctionClic[i]);
        }
    </script>
    </body>
    </html>

    Après pour l'actualisation de la page, c'est côté serveur en effet...

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Si ça ne concerne que cet utilisateur, pas (nécessairement) besoin de PHP : on enregistre via JS dans un cookie.

  5. #5
    Candidat au Club
    Homme Profil pro
    Artiste plasticien
    Inscrit en
    Novembre 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Artiste plasticien
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Novembre 2017
    Messages : 3
    Par défaut
    mathieu, pour le coup l'idée est de le poser sur un site et ensuite d'effectivement le garder en mémoire afin de le montrer à tous les visiteurs du site et que chacun puisse cliquer pour modifier la couleur, pour qu'à terme on puisse voir une modification générale, mais du coup ça m'intéresse aussi de savoir comment le faire.

    Archimède, le script est nickel, mais effectivement j'avais oublié de mentionner un détail important, le background du body est aussi en gris 50%, ce qui fait que le texte est de la même couleur que le fond au début, et qu'il s'assombrit/s'éclaircit au fur et à mesure que l'on clique. Je vois (et je ne pense pas me tromper, mais je ne suis pas sûr, hein !) que tu as fait la modification par rapport à la transparence du texte. du coup j'ai une question, est ce que c'est possible de transformer sa couleur et non sa transparence, pour amener vers les différents tons de gris, comme tu l'as fait avec la transparence ?

    jreaux62, merci pour l'idée, je pense qu'au début, ce sera que "l'utilisateur" pour voir si ça fonctionne et à terme, c'est d'effectivement le mettre en réseau pour que tout le monde puisse le voir et le faire évoluer.


    Et enfin, désolé, je suis vraiment une bille en script !!

  6. #6
    Candidat au Club
    Homme Profil pro
    Artiste plasticien
    Inscrit en
    Novembre 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Artiste plasticien
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Novembre 2017
    Messages : 3
    Par défaut
    c'est bon Archimède, j'ai trouvé !

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    <!DOCTYPE html>
    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <style>body{background-color : rgb(127,127,127);}</style>
        <title>Page Title</title>
    </head>
     
    <body>
    <script>
        var TabBut=[],TabFunctionClic=[];
        var x=127;
        var montexte="Chaîne de caractères et canal alpha.";
        var divtext=document.createElement('div');
         divtext.style.width=700+"px";
         divtext.style.height=40+"px";
         divtext.style.position="absolute";
         divtext.style.left=200+"px";
         divtext.style.top=10+"px";
         divtext.style.font= "bold 40px arial";
         divtext.style.color= 'rgb('+x+','+x+','+x+')';
         divtext. textContent =montexte;
         document.body.appendChild(divtext);
         
         TabFunctionClic[0]=function(){
          if (x>0) x-=5;
          divtext.style.color= 'rgb('+x+','+x+','+x+')'; 
          divtext.textContent =montexte;
        };
        
        TabFunctionClic[1]=function(){
          if (x<255) x+=5;
          divtext.style.color= 'rgb('+x+','+x+','+x+')'; 
          divtext.textContent =montexte;
        };
        
     
        for(var i=0;i<=1;i++){
            TabBut[i]=document.createElement('input');
            TabBut[i].type='button';
            TabBut[i].style.width=160+"px";
            TabBut[i].style.height=40+"px";
            TabBut[i].style.position="absolute";
            TabBut[i].style.left=10+"px";
            
           if (i===0){
            TabBut[i].style.top=10+"px";
            TabBut[i].value="foncer";
            }
            else {
                TabBut[i].style.top=50+"px";
                TabBut[i].value="éclaicir";
            }
            document.body.appendChild(TabBut[i]);
            TabBut[i].addEventListener('click',TabFunctionClic[i]);
        }
    </script>
    </body>
    </html>

Discussions similaires

  1. Créer un texte en cliquant sur des boutons.
    Par azmodai dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 17/02/2009, 19h13
  2. Supprimer le texte d'une zone de texte en cliquant sur un bouton ?
    Par beegees dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 05/02/2008, 13h53
  3. Modifier un champ de texte en cliquant sur un bouton radio
    Par vikti dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 24/10/2007, 14h20
  4. changer plusieurs fois de couleurs
    Par AlexFred dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 12/09/2007, 09h24
  5. Réponses: 13
    Dernier message: 07/08/2006, 10h13

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