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 :

Synchroniser deux toggle


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 6
    Points : 3
    Points
    3
    Par défaut Synchroniser deux toggle
    Bonjour,

    Je cherche à synchroniser deux boutons switch toggle c'est à dire que lorsque je clique sur l'un des switchs, ce-dernier glisse et je souhaite que l'autre aussi et inversement.

    Merci d'avance pour votre aide.

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonjour,
    c'est quoi des boutons « switch toggle » ?

    Tu peux utiliser cette structure HTML
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <input type="radio" name="choix" value="1">
    <input type="radio" name="choix" value="2">
    il faut simplement que les deux <input> aient le même name, après le CSS peut faire le reste.

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

    Même question :
    Citation Envoyé par NoSmoking Voir le message
    c'est quoi des boutons «switch toggle» ?


    S'ils n'ont pas le même name ou fonction, il faut voir du coté de JavaScript.

    Mais on attend que tu montres ton code (HTML, JS ?)...


    N.B. La réponse à ta question se trouve certainement dans le 2ème lien que j'ai donné ! (à adapter, bien sûr)
    Dernière modification par Invité ; 25/09/2018 à 12h39.

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    Je vous remercie pour votre aide.

    J'utilisais des switch en m'inspirant de https://codepen.io/nickbottomley/pen/uhfmn.
    Et j'ai rajouté un attribut "onclick" et la fonction de synchronisation des deux switchs via le deuxième lien envoyé et ça marche très bien.

    Est-ce que vous souhaitez que je dépose le code dans cette discussion?

    Merci d'avance pour votre retour.

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

    Citation Envoyé par Spip17 Voir le message
    ...Est-ce que vous souhaitez que je dépose le code dans cette discussion?...
    Oui, car ça intéressera certainement d'autres.

    C'est le principe d'un forum d'entraide.

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Alors, voici comment j'ai fait:

    Pour contextualiser, j'ai deux switch sur la même page web et ici, vous avez le code pour l'un des deux switchs:

    L'objectif était de faire apparaître 2 tableaux gérés par deux switch et que l'état de ces switch se synchronisent:

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <body>
     
        <div class="switch switchButton">
          <input id="radio-a" type="radio" name="switchF" onclick="sync_toggle('radio-d','radio-c', 'radio-b', 'radio-a', 1)" checked="checked"/>
          <label for="radio-a">M</label>
     
          <input id="radio-b" type="radio" onclick="sync_toggle('radio-d','radio-c', 'radio-b', 'radio-a', 2)" name="switchF"/>
          <label for="radio-b">A</label><span class="toggle-outside"><span class="toggle-inside"></span></span>
        </div>
     
     
    </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
    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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    *,
    *:before,
    *:after {
      box-sizing: border-box;
    }
     
     
    .switch {
      margin: 4rem auto;
    }
    /* main styles */
    .switch {
      width: 24rem;
      position: relative;
    }
    .switch input {
      position: absolute;
      top: 0;
      z-index: 2;
      opacity: 0;
      cursor: pointer;
    }
    .switch input:checked {
      z-index: 1;
    }
    .switch input:checked + label {
      opacity: 1;
      cursor: default;
    }
    .switch input:not(:checked) + label:hover {
      opacity: 0.5;
    }
    .switch label {
      color: #23c1aa;
      opacity: 0.33;
      transition: opacity 0.25s ease;
      cursor: pointer;
    }
    .switch .toggle-outside {
      height: 70%;
      border-radius: 2rem;
      padding: 0.25rem;
      overflow: hidden;
      transition: 0.25s ease all;
    }
    .switch .toggle-inside {
      border-radius: 5rem;
      background: #fff;
      position: absolute;
      transition: 0.25s ease all;
    }
    .switchButton {
      width: 24rem;
      height: 3rem;
      margin: 0 auto;
      font-size: 0;
    }
    .switchButton input {
      height: 3rem;
      width: 6rem;
      left: 10.5rem;
      margin: 0rem;
    }
    .switchButton label {
      font-size: 1.5rem;
      line-height: 3rem;
      display: inline-block;
      width: 6rem;
      height: 100%;
      margin: 0;
      text-align: center;
      font-family: 'Roboto', sans-serif !important;
    }
    .switchButton label:last-of-type {
      margin-left: 6rem;
    }
    .switchButton label:first-of-type {
      margin-right: 6rem;
    }
    .switchButton .toggle-outside {
      background: #23c1aa;
      position: absolute;
      width: 5rem;
      left: 10.5rem;
      top: 0.5rem;
    }
    .switchButton .toggle-inside {
      height: 1.5rem;
      width: 1.5rem;
    }
    .switchButton input:checked ~ .toggle-outside .toggle-inside {
      left: 0.25rem;
    }
    .switchButton input ~ input:checked ~ .toggle-outside .toggle-inside {
      left: 3.25rem;
    }
    Code JavaScript : 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
     
    function sync_toggle(id1,id2,id3,id4, idT) 
    {     
    	var toggle1 = document.getElementById(id1);   
    	var toggle2 = document.getElementById(id2);
            var toggle3 = document.getElementById(id3); 
            var toggle4 = document.getElementById(id4);       
    	var is_checked1 = toggle1.checked;   
    	var is_checked2 = toggle2.checked;
    	var is_checked3 = toggle4.checked;
    	var is_checked4 = toggle4.checked;
     
    	if (is_checked1 == is_checked3)
    	{
     
            toggle1.checked = !is_checked1;      
    	toggle2.checked = !is_checked2;
     
        }
    	var idTableau = idT;
    if(idTableau==1)
    	{
    		document.getElementById('Id_Tableau1').style.display='contents'
    		document.getElementById('Id_Tableau2').style.display='none';
    		document.getElementById('Id_Tableau3').style.display='contents'
    		document.getElementById('Id_Tableau4').style.display='none';
    	}
    	else
    	{
    		document.getElementById('Id_Tableau1').style.display='none';
    		document.getElementById('Id_Tableau2').style.display='contents';
    		document.getElementById('Id_Tableau3').style.display='none';
    		document.getElementById('Id_Tableau4').style.display='contents';
    	}
     }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Synchronisation deux Bases Mysql
    Par eric_89 dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 14/12/2006, 15h57
  2. Comment synchroniser deux bases de données
    Par apoingsfermes dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 15/11/2006, 22h41
  3. Synchroniser deux zones de listes en VBA
    Par gaelj dans le forum Access
    Réponses: 3
    Dernier message: 03/09/2006, 19h55
  4. Synchroniser deux listes
    Par Mahefasoa dans le forum Access
    Réponses: 4
    Dernier message: 02/08/2006, 10h31
  5. Synchroniser deux CPU (deux algos)
    Par progfou dans le forum Algorithmes et structures de données
    Réponses: 12
    Dernier message: 28/04/2006, 14h46

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