Saya membuat situs web di mana saya ingin menggunakan slider rentang (saya tahu itu hanya mendukung browser webkit).
Saya telah mengintegrasikannya sepenuhnya dan berfungsi dengan baik. Tapi saya ingin menggunakan a textbox
untuk menunjukkan nilai slide saat ini.
Maksud saya jika awalnya slider berada pada nilai 5, jadi di kotak teks itu harus ditampilkan sebagai 5, ketika saya menggeser nilai di kotak teks harus berubah.
Dapatkah saya melakukan ini hanya dengan CSS
atau html
. Saya ingin menghindari JQuery
. Apa itu mungkin?
:before
/:after
,content
danattr()
, seperti ini . Namun, pseudo-element: before /: after benar-benar memakan beberapa rentang slider (meskipun mungkin itu bisa diperbaiki), dan yang paling penting, nilainya tidak diperbarui jika slider dimanipulasi. Namun demikian, saya pikir akan menarik untuk meninggalkan ini di sini. Ini mungkin menjadi mungkin di masa depan.Jawaban:
Ini menggunakan javascript, bukan jquery secara langsung. Ini mungkin membantu Anda memulai.
sumber
code
<label for = "rangeinput"> Range </label> <input id = "rangeinput" type = "range" min = "0" max = "10" value = "5" onchange = "rangevalue.value = value"> </input> <output id = "rangevalue"> 5 </output>Bagi mereka yang masih mencari solusi tanpa kode javascript terpisah. Ada sedikit solusi mudah tanpa menulis fungsi javascript atau jquery:
Demo JsFiddle
Jika Anda ingin menampilkan nilai dalam kotak teks, cukup ubah output menjadi input.
Memperbarui:
Gunakan Id atau nama elemen, keduanya didukung di browser morden.
sumber
versi dengan masukan yang dapat diedit:
http://jsfiddle.net/Xjxe6/
sumber
this.nextElementSibling
atauthis.previousElementSibling
dan ganti oninput dengan onchange untuk mendapatkan versi yang berfungsi di luar formulir. jsfiddle.net/Xjxe6/94cara yang lebih baik adalah dengan menangkap peristiwa masukan pada masukan itu sendiri daripada di seluruh formulir (kinerja bijaksana):
Ini biola (dengan
id
ditambahkan sesuai komentar Ryan).sumber
id="amount"
outputnya juga.oninput="this.form.amount.value=this.value"
Jika Anda ingin nilai Anda saat ini ditampilkan di bawah penggeser dan bergerak bersamanya, coba ini:
Perhatikan bahwa jenis elemen input HTML ini memiliki satu fitur tersembunyi, seperti Anda dapat memindahkan slider dengan tombol panah kiri / kanan / bawah / atas saat elemen tersebut difokuskan. Hal yang sama dengan tombol Home / End / PageDown / PageUp.
sumber
Jika Anda menggunakan banyak slide , dan Anda dapat menggunakan jQuery, Anda dapat melakukan hal berikut untuk menangani beberapa slider dengan mudah:
Juga, dengan menggunakan
oninput
di<input type='range'>
Anda akan menerima acara sambil menyeret rentang.sumber
Versi terpendek tanpa
form
,min
atau JavaScript eksternal.sumber
Bagi orang yang tidak peduli dengan penggunaan jquery, berikut adalah cara singkat tanpa menggunakan id
sumber
Saya memiliki solusi yang melibatkan (Vanilla) JavaScript, tetapi hanya sebagai perpustakaan. Anda harus memasukkannya sekali dan kemudian yang perlu Anda lakukan adalah mengaturnya
source
atribut yang dari input nomor.The
source
atribut harusquerySelectorAll
pemilih dari berbagai masukan yang ingin Anda mendengarkan.Ia bahkan bekerja dengan selektif. Dan itu bekerja dengan banyak pendengar. Dan itu bekerja ke arah lain: ubah input angka dan input jangkauan akan menyesuaikan. Dan itu akan bekerja pada elemen yang ditambahkan kemudian ke halaman (periksa https://codepen.io/HerrSerker/pen/JzaVQg untuk itu)
Diuji di Chrome, Firefox, Edge, dan IE11
sumber
sumber
Coba ini :
dan di bagian jQuery :
sumber
jika anda masih mencari jawaban anda dapat menggunakan input type = "number" di tempat type = "range" min max bekerja jika diatur dalam urutan seperti itu:
1-nama
2-maxlength
3-size
4-min
5-max
just salin itu
sumber