Я создаю веб-сайт, на котором хочу использовать слайдер диапазона (я знаю, что он поддерживает только браузеры webkit).
Я полностью интегрировал его и работает нормально. Но я хотел бы использовать textbox
для отображения текущего значения слайда.
Я имею в виду, что если изначально ползунок установлен на значение 5, поэтому в текстовом поле он должен отображаться как 5, когда я сдвигаю значение в текстовом поле, должно измениться.
Могу я сделать это, используя только CSS
или html
. Я хочу избежать JQuery
. Является ли это возможным?
:before
/:after
,content
иattr()
вот так . Однако псевдоэлементы: before /: after фактически съедают часть диапазона ползунка (хотя, возможно, это поправимо), и, что наиболее важно, значения не обновляются, если ползунком манипулируют. Тем не менее, я подумал, что было бы интересно оставить это здесь. Это может стать возможным в будущем.Ответы:
Это использует javascript, а не jquery напрямую. Это может помочь вам начать работу.
источник
code
<label for = "rangeinput"> Диапазон </label> <input id = "rangeinput" type = "range" min = "0" max = "10" value = "5" onchange = "rangevalue.value = value"> </input> <output id = "rangevalue"> 5 </output>Для тех, кто все еще ищет решение без отдельного кода javascript. Без написания функции javascript или jquery нет простого решения:
Демо JsFiddle
Если вы хотите отобразить значение в текстовом поле, просто измените вывод на ввод.
Обновить:
Либо используйте идентификатор элемента, либо имя, оба поддерживаются в современных браузерах.
источник
версия с редактируемым вводом:
http://jsfiddle.net/Xjxe6/
источник
this.nextElementSibling
илиthis.previousElementSibling
и замените oninput на onchange, чтобы получить версию, работающую вне формы. jsfiddle.net/Xjxe6/94Еще лучшим способом было бы поймать событие ввода на самом вводе, а не на всей форме (с точки зрения производительности):
Вот скрипка (с
id
добавлением в соответствии с комментарием Райана).источник
id="amount"
для вывода.oninput="this.form.amount.value=this.value"
Если вы хотите, чтобы ваше текущее значение отображалось под ползунком и перемещалось вместе с ним, попробуйте следующее:
Обратите внимание, что этот тип элемента ввода HTML имеет одну скрытую функцию, например, вы можете перемещать ползунок с помощью клавиш со стрелками влево / вправо / вниз / вверх, когда элемент находится в фокусе. То же самое с клавишами Home / End / PageDown / PageUp.
источник
Если вы используете несколько слайдов и можете использовать jQuery, вы можете сделать следующее, чтобы легко работать с несколькими слайдерами:
Кроме того, используя
oninput
кнопку,<input type='range'>
вы будете получать события при перетаскивании диапазона.источник
Кратчайший версия без
form
,min
или внешний JavaScript.источник
Для людей, которые не заботятся об использовании jquery, вот короткий способ без использования идентификатора
источник
У меня есть решение, которое включает (ванильный) JavaScript, но только в виде библиотеки. Вы должны включить его один раз, а затем все, что вам нужно сделать, это установить соответствующий
source
атрибут числовых входов.source
Атрибут должен бытьquerySelectorAll
селектором входного диапазона вы хотите слушать.Он работает даже с selectcs. И это работает с несколькими слушателями. И это работает в другом направлении: измените ввод числа, и ввод диапазона изменится. И он будет работать с элементами, добавленными позже на страницу ( для этого проверьте https://codepen.io/HerrSerker/pen/JzaVQg )
Протестировано в Chrome, Firefox, Edge и IE11
источник
источник
Попробуй это :
и в разделе jQuery :
источник
если вы все еще ищете ответ, вы можете использовать input type = "number" вместо type = "range" min max work, если он установлен в таком порядке:
1-name
2-maxlength
3-size
4-min
5-max
просто скопируйте это
источник