Ich möchte eine Umschaltfläche in HTML mit CSS erstellen. Ich möchte, dass es beim Klicken darauf gedrückt bleibt und dann beim erneuten Klicken herausspringt.
Wenn es keine Möglichkeit gibt, verwenden Sie einfach CSS. Gibt es eine Möglichkeit, dies mit jQuery zu tun?
Antworten:
Der gute semantische Weg wäre, ein Kontrollkästchen zu verwenden und es dann auf unterschiedliche Weise zu formatieren, ob es aktiviert ist oder nicht. Aber es gibt keine guten Möglichkeiten, dies zu tun. Sie müssen zusätzliche Spanne, zusätzliche Div hinzufügen und für ein wirklich schönes Aussehen etwas Javascript hinzufügen.
Die beste Lösung besteht also darin, eine kleine jQuery-Funktion und zwei Hintergrundbilder zum Stylen der beiden unterschiedlichen Status der Schaltfläche zu verwenden. Beispiel mit einem durch Ränder gegebenen Auf / Ab-Effekt:
Natürlich können Sie Hintergrundbilder hinzufügen, die Schaltflächen nach oben und unten darstellen, und die Hintergrundfarbe transparent machen.
quelle
Mit der JQuery-Benutzeroberfläche können Sie problemlos Schaltflächen erstellen. Setzen Sie das einfach
Lassen Sie auf Ihrer Seite und dann in Ihrem Körper
onLoad
oder in Ihrer$.ready()
(oder einigen Objektliteraleninit()
, wenn Sie eine Ajax-Site erstellen ..) JQuery wie folgt fallen:das ist es. (Vergessen Sie das nicht,
< label for=...>
da JQueryUI dies für den Hauptteil der Umschalttaste verwendet.)Von dort aus arbeiten Sie einfach wie mit jedem anderen
input="checkbox
", denn das ist immer noch das zugrunde liegende Steuerelement, aber die JQuery-Benutzeroberfläche häutet es einfach so, dass es wie eine hübsche Umschalttaste auf dem Bildschirm aussieht.quelle
Hier ist ein Beispiel mit
pure css
:quelle
In Kombination mit dieser Antwort können Sie auch diese Art von Stil verwenden, der den mobilen Einstellungen ähnelt.
HTML
CSS
jQuery
Könnte viel schöner sein, gibt aber die Idee.
Ein Vorteil ist, dass es mit jquery und / oder CSS3 Fiddler animiert werden kann
quelle
Wenn Sie eine richtige Schaltfläche wünschen, benötigen Sie Javascript. So etwas in der Art (erfordert einige Arbeiten am Styling, aber Sie bekommen das Wesentliche). Ich würde mich nicht darum kümmern, jquery für etwas so Triviales zu verwenden, um ehrlich zu sein.
quelle
Sie können nur verwenden
toggleClass()
, um den Status zu verfolgen. Dann überprüfen Sie, ob das Schaltflächenelement die Klasse hat, wie folgt:Und ich benutze das
button
Element aus semantischen Gründen für Schaltflächen.quelle
Sie können ein Ankerelement (
<a></a>
) und einen Link: active und a: verwenden, um das Hintergrundbild so zu ändern, dass es ein- oder ausgeschaltet wird. Nur ein Gedanke.Bearbeiten: Die obige Methode funktioniert nicht gut zum Umschalten. Sie müssen jedoch keine jquery verwenden. Schreiben Sie eine einfache onClick-Javascript-Funktion für das Element, die das Hintergrundbild entsprechend ändert, damit es so aussieht, als ob die Schaltfläche gedrückt wird, und setzen Sie ein Flag. Beim nächsten Klick werden Bild und Flagge zurückgesetzt. Wie so
Und das HTML gefällt mir
<div id="toggleDiv" onclick="toggle()">Some thing</div>
quelle
Ich denke nicht, dass die Verwendung von JS zum Erstellen einer Schaltfläche eine gute Praxis ist. Was ist, wenn der Browser des Benutzers JavaScript deaktiviert?
Außerdem können Sie dazu einfach ein Kontrollkästchen und ein bisschen CSS verwenden. Und es ist einfach, den Status Ihres Kontrollkästchens abzurufen.
Dies ist nur ein Beispiel, aber Sie können es so gestalten, wie Sie möchten.
http://jsfiddle.net/4gjZX/
HTML
CSS
Hoffe das hilft
quelle
Ich würde gerne eine Klasse in Ihrem CSS verwenden, die den Rahmenstil oder die Rahmenbreite ändert, wenn die Schaltfläche gedrückt wird, sodass sie wie eine Umschalttaste aussieht.
quelle
Versuchen Sie dieses Bit:
quelle
Es gibt ein JQuery-Plugin von Swizec , das dies unter anderem kann: https://github.com/Swizec/styled-button
(Der alte Link war http://swizec.com/code/styledButton/ . Ich habe den Ersatz nicht vollständig getestet, sondern nur mit Google gefunden.)
quelle
Sie können die "aktive" Pseudoklasse verwenden (sie funktioniert jedoch unter IE6 nicht für andere Elemente als Links).
quelle
Hier ist eines der Beispiele / Varianten (ausführlicher beschrieben) von ToggleButton unter Verwendung von jQuery mit
<label for="input">
Implementierung.Zuerst erstellen wir einen Container für unseren ToggleButton mit klassischem HTML
<input>
und<label>
Als nächstes definieren wir die Funktion zum Umschalten unserer Taste. Unser Knopf ist eigentlich der übliche,
<label>
den wir stylen werden, um das Umschalten des Wertes darzustellen.Die Funktion wird wiederverwendbar implementiert. Sie können es für mehr als einen, zwei oder sogar drei von Ihnen erstellte ToggleButtons verwenden.
... und schließlich ... damit es wie erwartet funktioniert, sollten wir die Umschaltfunktion an ein Ereignis ("Änderungs" -Ereignis) unserer improvisierten
<label>
Schaltfläche binden (es wird einclick
Ereignis sein, da wir das nichtcheckbox
direkt ändern , also keinchange
Ereignis kann gefeuert werden für<label>
).Mit CSS können wir definieren
backgorund-image
oder einigeborder
, um die Wertänderung darzustellen, während<label>
wir die Aufgabe übernehmen, den Wert eines Kontrollkästchens zu ändern;).Hoffe das hilft jemandem.
quelle
.addClass()
/ können.removeClass()
Sie auch verwenden.toggleClass()
, aber die beschriebene Methode definiert explizit Aktionen fürchecked
/unchecked
Werte.Versuchen;
Und stellen Sie sicher, in der
Denken Sie daran, wenn Sie dies nur codieren
somename
undsomeid
das Eingabe-Tag ändern können, sonst funktioniert es nicht.quelle
Soweit ich auch nach Antworten suchte und diese mit CSS erreichen wollte. Ich habe eine Lösung von CSS NINJA gefunden. Es ist eine schöne Weiterentwicklung
<input type="checkbox">
und eine CSS- Live-Demo ! Obwohl es in IE 8 nicht funktioniert, können Sie selectivizr ! und fix CSS wo Anwendungenopacity
zu ,filter
um es in IE zu arbeiten.EDIT 2014:
Für neue Umschalttasten verwende ich eine Lösung, die im Lea Verou-Blog gefunden wurde und dem Kontrollkästchen für iOS optisch ähnlich ist
quelle