jQuery UI Slider и модификация дескриптора
Я использую стандартный слайдер jQueryUI и хочу изменить внешний вид ручки. Я изменил CSS на
.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 40px; height: 10px; cursor: default; border: 0; background-color: #c6c7c8; }
.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
.ui-slider-horizontal { height: 10px; border: 0; background-color: #eceded; }
.ui-slider-horizontal .ui-slider-handle { top: 0; margin-left: 0; }
.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
.ui-slider-horizontal .ui-slider-range-min { left: 0; }
.ui-slider-horizontal .ui-slider-range-max { right: 0; }
Я так и сделал, чтобы ручка сидела на "беговой дорожке". Но если ручка перемещается в крайнее правое положение, она находится за пределами своей полосы движения. Конечно, я мог бы установить .ui-slider-handle
поле слева до -20px. Но затем на обоих концах он перекрывает свою полосу движения.
Это как-то связано с ui-slider-range-max
? Но при проверке слайдера через Firebug этот CSS-класс нигде не используется.
1 ответ
Класс ui-slider-range-max
задается в диапазоне диапазона ползунка с фиксированной максимальной точкой. Вот так: http://jqueryui.com/demos/slider/
Если вы не видите этот класс в Firebug, возможно, вы не используете этот тип слайдера
Я думаю, что вы спрашиваете, как сделать так, чтобы левый край ручки останавливался на левом краю "полосы-ползунка", а правый край ручки не проходил за правый край "полосы-ползунка". Т.е. ручка, сидящая в полосе движения
Если это так, вы можете сделать так, чтобы дескриптор оставался в пределах "полосы-ползунка", сначала удалив фон и все остальное, видимое из div-элемента пользовательского интерфейса.
пример:
.ui-slider-horizontal { height: 10px; border: 0; background: none }
Затем оберните слайдер внутри контейнера с вашим фоном. Контейнерный блок можно рассматривать как "полосу ползунка", и вы можете назначить ему необходимое заполнение, чтобы казалось, что ручка остается в полосе ползунка.
пример:
.ui-slider-container { background-color: #eceded; padding: 0 0.6em;}
также сбросить ручку margin-left
вернуться к тому, что было, если у вас есть отступ слева и справа в контейнере div, в противном случае просто используйте отступ справа.