45 votes

Comment créer un interrupteur marche/arrêt avec Javascript/CSS?

Je veux avoir un interrupteur coulissant. À gauche serait Off et à droite serait On. Lorsque l'utilisateur bascule l'interrupteur, je veux que la partie « curseur » glisse de l'autre côté et indique qu'il est éteint. Je pourrais ensuite avoir un callback qui prend en entrée l'état de l'interrupteur basculant afin que je puisse agir en conséquence.

Une idée de comment faire cela?

0 votes

Pas sûr que cette question soit trop large après presque 5 ans d'ouverture. Elle définit clairement ce que je recherche et a reçu une réponse le jour même qui répond parfaitement à la question. La question continue de susciter beaucoup d'activité et de nouvelles réponses actuelles sont publiées 4,5 ans après avoir posé la question.

2 votes

J'ai écrit un tutoriel sur comment créer des interrupteurs marche/arrêt avec uniquement du CSS (ainsi que des cases à cocher et des boutons radio). Vous pouvez voir la démo ici

45voto

anna.mi Points 506

Découvrez ce générateur : On/Off FlipSwitch

vous pouvez obtenir différents styles et c'est uniquement en CSS - pas de javascript !

37voto

Alex Reitbort Points 9120

Vous voulez dire quelque chose comme les cases à cocher d'iPhone ? Essayez le script Thomas Reynolds' iOS Checkboxes :

Une fois que les fichiers sont disponibles sur votre site, activer le script est très facile :

...

$(document).ready(function() {
  $(':checkbox').iphoneStyle();
});

Résultats :

0 votes

Belle. Je ne possède pas d'iPhone alors je ne savais pas comment cela s'appelait.

7 votes

proto.io/freebies/onoff - service for Générer des interrupteurs bascule On/Off en CSS3 pur avec des transitions animées.

8 votes

Il convient de noter que ce n'est pas gratuit pour un usage commercial.

17voto

Groo Points 19453

Utilisation de JavaScript simple

      .on  { background:blue; }
      .off { background:red; }

        function toggleState(item){
           if(item.className == "on") {
              item.className="off";
           } else {
              item.className="on";
           }
        }

Utilisation de jQuery

Si vous utilisez jQuery, vous pouvez le faire en utilisant la fonction toggle, ou en utilisant la fonction toggleClass à l'intérieur du gestionnaire d'événements click, comme ceci :

$(document).ready(function(){
    $('a#myButton').click(function(){
        $(this).toggleClass("btnClicked");
    });
});

En utilisant les effets jQuery UI, vous pouvez animer les transitions : http://jqueryui.com/demos/toggleClass/

13voto

tujamaica Points 271

J'ai juste écrit une implémentation ios 7 en pur CSS. Voici une démo et le repo Github.

capture d'écran

Utilisation :

À votre santé.

8voto

smonff Points 1164

Réponse initiale de 2013

Si vous n'êtes pas contre quelque chose lié à Bootstrap, un excellent Bootstrap Switch (non officiel) est disponible.

Interrupteur classique 2013

Il utilise des boutons radio ou des cases à cocher comme interrupteurs. Un attribut de type a été ajouté depuis la version 1.8.

Le code source est disponible sur Github.

Note de 2018

Je ne recommanderais pas d'utiliser ce genre d'anciens boutons interrupteurs maintenant, car ils semblaient toujours souffrir de problèmes d'utilisabilité comme le soulignent de nombreuses personnes.

Veuillez envisager de jeter un œil aux interrupteurs modernes comme ceux-ci.

Interrupteur moderne 2018

2 votes

Le lien redirige vers bootstrap-switch.org qui ne parvient pas à se charger. Utilisez bootstrap-switch.org (avec www; merci à SO pour masquer visuellement www dans mon lien) à la place, qui se charge correctement.

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