Скрытие поля ввода слайдера в jquery
Я использую jquery Mobile 1.0.
У меня есть этот HTML-код.
<label for="slider" class="ui-hidden-accessible">
Input slider:
</label>
<input type="range" name="slider" id="@(Model.QuestionNo)_slider" value="25" min="0" max="100" />
Его отображение выглядит так:
![enter image description here]()
Но я хочу удалить красную отмеченную часть. Я хочу показать только часть слайдера.
Как это можно сделать?
Ответы
Ответ 1
Если вы просто хотите избавиться от стрелок вверх/вниз, вы можете обернуть ввод в элемент с указанной шириной/высотой и overflow : hidden
:
$(".ui-slider-input").wrap($('<div />').css({
position : 'relative',
display : 'inline-block',
height : '36px',
width : '45px',
overflow : 'hidden'
}));
Или, как заявил Фредерик Хамиди, вы можете просто скрыть элемент все вместе, и будет отображаться только ползунок.
Ниже приведена демограмма: http://jsfiddle.net/EWQ6n/1/
Также вы можете скрыть элемент ввода с помощью CSS (что хорошо, потому что вам не нужно время выполнения CSS, как вы это делаете с JS):
.ui-slider-input {
display : none !important;
}
Вот демонстрация использования CSS: http://jsfiddle.net/EWQ6n/2/
Обновление
Вместо использования ключевого слова !important
вы также можете создать более конкретное правило CSS, которое будет использоваться над классами jQuery Mobile. Примером может служить:
.ui-mobile .ui-page .ui-slider-input,
.ui-mobile .ui-dialog .ui-slider-input {
display : none;
}
Ответ 2
input.ui-slider-input {
display: none;
}
Ответ 3
Вы можете скрыть управление вводом вручную:
$("#yourPage").live("pageinit", function() {
$(".ui-slider-input").hide();
});
Ответ 4
Если вы хотите избавиться от стрелки вверх/вниз, используйте type="text" data-type="range"
<input type="text" data-type="range" name="slider" id="@(Model.QuestionNo)_slider" value="25" min="0" max="100" />
Ответ 5
Я тоже хотел это сделать, но я также хотел, чтобы пространство исчезло. Я сделал это так (я использую ползунок диапазона):
<div data-role="rangeslider" data-mini="true" class="no-number">
<input type="range" name="Morn" id="Morn" data-mini="true" value="720" min="0" max="1439">
<input type="range" name="Night" id="Night" data-mini="true" value="10800" min="0" max="1439">
</div>
Примечание. Я добавил номер .no в div.
Тогда в css:
/* Used to remove the number next to the slider.*/
.no-number .ui-slider-input
{
display : none;
width: 0px;
}
/* Used to remove the space where the number was. */
.no-number .ui-rangeslider-sliders
{
margin: 0 5px; !important
}
Я делаю все это как часть более крупной проблемы, а именно, что я пытаюсь использовать ползунок диапазона для времени вместо чисел, поэтому я заменил эти элементы заголовком, который я могу изменить с помощью функции для отображения время.
Это может быть не идеальный выбор, но я не видел, где можно найти место где угодно, поэтому я думал, что разместил его здесь.
Ответ 6
Когда вы это сделаете с помощью подхода CSS
, вы можете сломать входной файл другого. Поэтому добавление класса class="ui-hidden-accessible"
к вводу, чтобы скрыть его.
Удалите этот class="ui-hidden-accessible"
из label
.
Ваш подход правильный. Но вам нужно добавить class="ui-hidden-accessible"
в input
не на label
.
Ваш код должен выглядеть примерно так:
<label for="slider">Input slider:</label>
<input type="range" name="slider" id="@(Model.QuestionNo)_slider"
value="25" min="0" max="100" class="ui-hidden-accessible"/>
Отметьте SAMPLE DEMO
Ответ 7
<input type="range" name="slider_sodio" id="slider_sodio" value="0" min="0" max="3" step="1" class="ui-hidden-accessible" />
но посмотрите, что смещение anoy
.ui-slider-track {
margin: 0 15px 0 68px; ----> change to 10
}
Ответ 8
Вы можете удалить входной слайдер как ниже:
input.ui-slider-input {
display: none;
width: 0;
}
.ui-slider-track {
margin: 0 15px 0 15px !important;
}