Saya ingin membuat tombol sakelar di html menggunakan css. Saya menginginkannya sehingga ketika Anda mengekliknya, itu tetap didorong ke dalam dan daripada ketika Anda mengekliknya lagi, itu akan keluar.
Jika tidak ada cara untuk melakukannya hanya dengan menggunakan css. Apakah ada cara untuk melakukannya menggunakan jQuery?
Jawaban:
Cara semantik yang baik adalah menggunakan kotak centang, dan kemudian menatanya dengan cara yang berbeda jika dicentang atau tidak. Tetapi tidak ada cara yang baik untuk melakukannya. Anda harus menambahkan span ekstra, div ekstra, dan, untuk tampilan yang benar-benar bagus, tambahkan beberapa javascript.
Jadi solusi terbaik adalah menggunakan fungsi jQuery kecil dan dua gambar latar belakang untuk menata dua status tombol yang berbeda. Contoh dengan efek naik / turun yang diberikan oleh batas:
Tentunya, Anda dapat menambahkan gambar latar belakang yang mewakili tombol atas dan tombol bawah, dan membuat warna latar belakang transparan.
sumber
JQuery UI mempermudah pembuatan tombol sakelar. Taruh ini
di halaman Anda dan kemudian di tubuh Anda
onLoad
atau Anda$.ready()
(atau beberapainit()
fungsi literal objek jika Anda membangun situs ajax ..) jatuhkan beberapa JQuery seperti ini:itu dia. (jangan lupa
< label for=...>
karena JQueryUI menggunakannya untuk badan tombol sakelar ..)Dari sana Anda hanya bekerja dengannya seperti yang lain
input="checkbox
"karena itulah kontrol yang mendasarinya tetapi JQuery UI hanya mengulitinya agar terlihat seperti tombol sakelar yang cantik di layar.sumber
berikut adalah contoh menggunakan
pure css
:sumber
Dalam kombinasi dengan jawaban ini , Anda juga dapat menggunakan jenis gaya ini seperti pengalih setelan seluler.
HTML
CSS
jQuery
Bisa jadi jauh lebih cantik, tapi memberi ide.
Salah satu keuntungannya adalah dapat dianimasikan dengan jquery dan / atau CSS3
Fiddler
sumber
Jika Anda menginginkan tombol yang tepat maka Anda memerlukan beberapa javascript. Sesuatu seperti ini (perlu beberapa perbaikan pada gaya tetapi Anda mendapatkan intinya). Tidak akan repot-repot menggunakan jquery untuk sesuatu yang sepele untuk jujur.
sumber
Anda hanya dapat menggunakan
toggleClass()
untuk melacak status. Kemudian Anda memeriksa apakah elemen tombol memiliki kelas, seperti ini:Dan saya menggunakan
button
elemen untuk tombol karena alasan semantik.sumber
Anda bisa menggunakan elemen jangkar (
<a></a>
), dan menggunakan: aktif dan: tautan untuk mengubah gambar latar belakang untuk mengaktifkan atau menonaktifkan. Hanya pemikiran saja.Sunting: Metode di atas tidak berfungsi dengan baik untuk beralih. Tapi Anda tidak perlu menggunakan jquery. Tulis fungsi javascript onClick sederhana untuk elemen tersebut, yang mengubah gambar latar belakang secara tepat agar terlihat seperti tombol ditekan, dan atur beberapa tanda. Kemudian pada klik berikutnya, gambar dan bendera dikembalikan. Seperti itu
Dan html seperti itu
<div id="toggleDiv" onclick="toggle()">Some thing</div>
sumber
Saya tidak berpikir menggunakan JS untuk membuat tombol adalah praktik yang baik. Bagaimana jika browser pengguna menonaktifkan JavaScript?
Plus, Anda bisa menggunakan kotak centang dan sedikit CSS untuk melakukannya. Dan mudah untuk mengambil kembali status kotak centang Anda.
Ini hanyalah satu contoh, tetapi Anda dapat menatanya sesuai keinginan.
http://jsfiddle.net/4gjZX/
HTML
CSS
Semoga ini membantu
sumber
Saya akan cenderung menggunakan kelas di css Anda yang mengubah gaya perbatasan atau lebar perbatasan saat tombol ditekan, sehingga memberikan tampilan tombol sakelar.
sumber
Coba sedikit ini:
sumber
Ada plugin jquery dari Swizec , yang dapat melakukan ini antara lain: https://github.com/Swizec/styled-button
(Tautan lama adalah http://swizec.com/code/styledButton/ , saya tidak menguji penggantinya sepenuhnya, hanya menemukannya dengan Google.)
sumber
Anda dapat menggunakan pseudoclass "aktif" (ini tidak akan berfungsi di IE6, untuk elemen selain tautan)
sumber
Berikut adalah salah satu contoh / varian (lebih detail dijelaskan) dari ToggleButton menggunakan jQuery with
<label for="input">
implementasi.Pertama kita akan membuat wadah untuk ToggleButton kita menggunakan HTML klasik
<input>
dan<label>
Selanjutnya kita akan menentukan fungsi untuk mengaktifkan tombol kita. Tombol kami sebenarnya adalah tombol biasa
<label>
yang akan kami gaya untuk mewakili nilai toggling.Fungsi diimplementasikan dengan cara yang dapat digunakan kembali. Anda dapat menggunakannya untuk lebih dari satu, dua atau bahkan tiga ToggleButtons yang telah Anda buat.
... dan akhirnya ... untuk membuatnya berfungsi seperti yang diharapkan, kita harus mengikat fungsi toggle ke acara (acara "ubah")
<label>
tombol improvisasi kami (itu akan menjadiclick
acara karena kami tidak mengubahcheckbox
secara langsung, jadi tidak adachange
acara dapat dipecat untuk<label>
).Dengan CSS kita dapat mendefinisikan
backgorund-image
atau beberapaborder
untuk mewakili perubahan nilai sementara<label>
akan melakukan pekerjaan itu untuk kita dalam mengubah nilai kotak centang;).Semoga ini bisa membantu seseorang.
sumber
.addClass()
/.removeClass()
Anda dapat menggunakan.toggleClass()
, tetapi metode yang dijelaskan secara eksplisit mendefinisikan tindakan untukchecked
/unchecked
nilai.Mencoba;
Dan pastikan di
Ingat ketika Anda mengkodekan ini, hanya
somename
dansomeid
dapat mengubah tag input, jika tidak maka tidak akan berfungsi.sumber
Sejauh saya sedang mencari jawaban juga, dan ingin menyelesaikannya dengan CSS. Saya menemukan solusi dengan CSS NINJA. Ini adalah impelmentasi yang bagus
<input type="checkbox">
dan beberapa demo langsung css ! Meskipun tidak berfungsi di IE 8, Anda dapat menerapkan selectivizr ! dan memperbaiki CSS di mana penggunaanopacity
untukfilter
untuk membuatnya bekerja di IE.EDIT 2014:
untuk tombol sakelar baru, saya menggunakan solusi yang ditemukan di blog Lea Verou secara visual mirip dengan kotak centang iOS
sumber