Estoy creando un sitio web en el que quiero usar el control deslizante de rango (sé que solo es compatible con navegadores webkit).
Lo he integrado completamente y funciona bien. Pero me gustaría usar un textbox
para mostrar el valor actual de la diapositiva.
Quiero decir, si inicialmente el control deslizante está en el valor 5, entonces en el cuadro de texto debería aparecer como 5, cuando deslizo el valor en el cuadro de texto debería cambiar.
¿Puedo hacer esto usando solo CSS
o html
. Quiero evitar JQuery
. ¿Es posible?
:before
/:after
,content
yattr()
, como este . Sin embargo, los pseudoelementos: before /: after realmente consumen parte del rango del control deslizante (aunque tal vez se pueda arreglar) y, lo que es más importante, los valores no se actualizan si se manipula el control deslizante. Sin embargo, pensé que sería interesante dejar esto aquí. Podría ser posible en el futuro.Respuestas:
Esto usa javascript, no jquery directamente. Podría ayudarlo a comenzar.
fuente
code
<label for = "rangeinput"> Rango </label> <input id = "rangeinput" type = "range" min = "0" max = "10" value = "5" onchange = "rangevalue.value = value"> </input> <output id = "rangevalue"> 5 </output>Para aquellos que todavía están buscando una solución sin un código javascript separado. Hay pocas soluciones fáciles sin escribir una función javascript o jquery:
Demostración de JsFiddle
Si desea mostrar el valor en el cuadro de texto, simplemente cambie la salida a la entrada.
Actualizar:
Utilice el ID o el nombre del elemento, ambos son compatibles con los navegadores modernos.
fuente
versión con entrada editable:
http://jsfiddle.net/Xjxe6/
fuente
this.nextElementSibling
othis.previousElementSibling
y reemplace oninput con onchange para obtener una versión que funcione fuera de un formulario. jsfiddle.net/Xjxe6/94una forma aún mejor sería capturar el evento de entrada en la entrada en sí en lugar de en el formulario completo (en cuanto al rendimiento):
Aquí hay un violín (con el
id
agregado según el comentario de Ryan).fuente
id="amount"
la salida.oninput="this.form.amount.value=this.value"
Si desea que su valor actual se muestre debajo del control deslizante y se mueva junto con él, intente esto:
Tenga en cuenta que este tipo de elemento de entrada HTML tiene una característica oculta, como que puede mover el control deslizante con las teclas de flecha izquierda / derecha / abajo / arriba cuando el elemento tiene el foco en él. Lo mismo con las teclas Inicio / Fin / PageDown / PageUp.
fuente
Si está usando varias diapositivas y puede usar jQuery, puede hacer lo siguiente para manejar fácilmente varios controles deslizantes:
Además, al usar
oninput
el<input type='range'>
, recibirá eventos mientras arrastra el rango.fuente
Versión más corta y sin
form
,min
o JavaScript externo.fuente
Para las personas que no se preocupan por el uso de jquery, aquí hay una forma corta sin usar ninguna identificación
fuente
Tengo una solución que involucra JavaScript (Vanilla), pero solo como una biblioteca. Debe incluirlo una vez y luego todo lo que necesita hacer es establecer el
source
atributo apropiado de las entradas numéricas.El
source
atributo debe ser elquerySelectorAll
selector de la entrada de rango que desea escuchar.Incluso funciona con selectcs. Y funciona con varios oyentes. Y funciona en la otra dirección: cambie la entrada de número y la entrada de rango se ajustará. Y funcionará en los elementos agregados más adelante en la página (consulte https://codepen.io/HerrSerker/pen/JzaVQg para saberlo )
Probado en Chrome, Firefox, Edge e IE11
fuente
fuente
Prueba esto :
y en la sección jQuery :
fuente
si aún está buscando la respuesta, puede usar input type = "number" en lugar de type = "range" min max work si se establece en ese orden:
1-name
2-maxlength
3-size
4-min
5-max
just cópialo
fuente