98 votes

Comment créer un bouton basculant dans Bootstrap ?

J'ai initialement créé une application web en HTML, CSS et JavaScript, puis on m'a demandé de la recréer en Bootstrap également. J'ai tout fait correctement, mais j'avais des boutons à bascule dans la web app qui sont redevenus des boutons radio (initialement des cases à cocher) au lieu des boutons à bascule que j'avais à l'origine.

Le code pour les boutons est ;

<label>Notifications<span class='toggle'><input type='radio' class='notifications' name='notifications' id='notifications' /></span></li>
<label>Preview<span class='toggle'><input type='radio' class='preview' name='preview' id='preview' /></span></li>

et les fichiers JavaScript et CSS auxquels la page HTML est liée le sont ;

<script src = 'jqtouch.js'></script>
<script src="jquery.js"></script>
<script src="js/bootstrap.js"></script>
<link href="css/bootstrap.css" rel="stylesheet">
<link href="css/bootstrap-responsive.css" rel="stylesheet">

Y a-t-il un moyen de modifier le code pour que je puisse récupérer le bouton de basculement ?

Si vous avez besoin d'un autre code, faites-le moi savoir, merci beaucoup par avance.

1 votes

0 votes

J'apprécie le lien, mais il n'y a pas ce que je cherche. le bouton à bascule que j'avais était le genre que l'on voit sur un iphone, comme le genre 'on'/'off'. est-ce que ça a un sens ?

0 votes

Ok donc c'est lié à jqtouch.js et non à bootstrap lui-même je pense

83voto

smonff Points 1164

Je ne sais pas si cela peut vous aider, mais il existe un excellent site (non officiel). Le commutateur d'amorçage est disponible . Il utilise cependant des types de radio.

Mise à jour : vous pouvez désormais utiliser des boutons radio ou les cases à cocher comme des interrupteurs. A type a été ajouté depuis la V.1.8.

20 votes

J'éviterais ces interrupteurs : ux.stackexchange.com/questions/1318/

3 votes

Ce site n'existe plus

0 votes

Vous avez raison @w3bMak3r, le nom de domaine a été changé. Mis à jour.

59voto

Sam Points 3542

Si cela ne vous dérange pas de modifier votre code HTML, vous pouvez utiliser la fonction data-toggle l'attribut <button> s. Voir le Bascule simple section de les exemples de boutons :

<button type="button" class="btn btn-primary" data-toggle="button">
    Single toggle
</button>

1 votes

Existe-t-il un moyen d'avoir une case à cocher interne dans une Monoparticipation tout comme dans le case à cocher/radio option ?

3 votes

aria-pressed="true" peut être utilisé pour vérifier l'état

32voto

StriplingWarrior Points 56276

Bootstrap 3 offre la possibilité de créer des boutons à bascule basés sur des cases à cocher ou des boutons radio : http://getbootstrap.com/javascript/#buttons

Cases à cocher

<div class="btn-group" data-toggle="buttons">
  <label class="btn btn-primary active">
    <input type="checkbox" checked> Option 1 (pre-checked)
  </label>
  <label class="btn btn-primary">
    <input type="checkbox"> Option 2
  </label>
  <label class="btn btn-primary">
    <input type="checkbox"> Option 3
  </label>
</div>

Boutons radio

<div class="btn-group" data-toggle="buttons">
  <label class="btn btn-primary active">
    <input type="radio" name="options" id="option1" checked> Option 1 (preselected)
  </label>
  <label class="btn btn-primary">
    <input type="radio" name="options" id="option2"> Option 2
  </label>
  <label class="btn btn-primary">
    <input type="radio" name="options" id="option3"> Option 3
  </label>
</div>

Pour qu'ils fonctionnent, vous devez initialiser .btn avec le Javascript de Bootstrap :

$('.btn').button();

0 votes

Existe-t-il un moyen d'avoir une case à cocher interne dans une Monoparticipation tout comme dans le case à cocher/radio option ?

0 votes

@Shimmy : Si vous mettez une seule case à cocher dans un groupe de boutons, vous obtiendrez le même comportement. Je ne suis pas au courant d'un moyen moins verbeux d'obtenir un bouton unique adossé à une case à cocher.

10voto

Min Hur Points 121

En voici un que j'ai réalisé pour un projet récent : http://minhur.github.io/bootstrap-toggle/

8voto

p2kmgcl Points 86

J'ai essayé d'activer la classe "active" manuellement avec javascript. Ce n'est pas aussi utilisable qu'une bibliothèque complète, mais pour les cas simples, cela semble suffisant :

var button = $('#myToggleButton');
button.on('click', function () {
  $(this).toggleClass('active');
});

Si vous réfléchissez bien, la classe 'active' est utilisée par bootstrap lorsque le bouton est pressé, pas avant ou après (notre cas), il n'y a donc pas de conflit dans la réutilisation de la même classe.

Essayez cet exemple et dites-moi s'il échoue : http://jsbin.com/oYoSALI/1/edit?html,js,output

1 votes

Je pense que l'utilisateur n'a pas posé de question à ce sujet, mais votre réponse vient de répondre à ma question !

0 votes

Je pense que cela aurait été la prochaine question de l'utilisateur de toute façon.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X