IonRangeSlider назначает метки значениям

Я использую ionRangeSlider и хочу назначить метки значениям или наоборот.

Таким образом, пользователь может выбрать расстояние от пляжа с параметрами: 'on beach', '100m', '200m', '300m', 'more than 300m' но мне нужно в post такие значения, как '0', '100', '200', '300', 999

Мой инициал:

$("#idSelector").ionRangeSlider({
    ...
    values_separator: " to ",
    values: [
        'on beach', '100m', '200m', '300m', 'more than 300m'
    ],
    ...

Есть ли способ сделать это? (для использования ionRangeSlider, потому что получить значения и разобрать их я могу на моем пути)

Я пытался установить min а также max варианты для ionRangeSlider, но это не работает.

Есть идеи?

2 ответа

Решение

Это можно сделать довольно легко. Проверьте это демо:

http://jsfiddle.net/IonDen/bvbvr0xs/

var $range = $(".js-range-slider");
var $result = $(".js-result");

var values = [0, 100, 200, 300, 999];
var values_p = ["on the beach", "100m", "200m", "300m", "more then 300m"];

$range.ionRangeSlider({
    type: "single",
    grid: true,
    values: values,
    prettify: function (n) {
        var ind = values.indexOf(n);
        return values_p[ind];
    },
    onStart: function(data) {
        $result.text(data.from_value);
    },
    onChange: function(data) {
        $result.text(data.from_value);
    }
});

Значения для ползунка отличаются от меток - метки предназначены только для пользователя.

Вы хотите, чтобы минимальное значение было равно 0, а максимальное - 400 (400 может превышать 300), а шаг - 100. Это даст вам нужные значения ползунка.

Теперь о ярлыках. Они должны быть отделены от ползунка - создайте каждую метку в элементе под ним, обернутым в элемент div. Дайте элементам p абсолютное позиционирование, каждый из которых имеет левое значение css.

Как это:

<div id='labels' style='position:relative; width:100%'>
   <p style='position:absolute;left:0'>on beach</p>
   <p style='position:absolute;left:25%'>100m</p>
   <p style='position:absolute;left:50%'>200m</p>
   <p style='position:absolute;left:75%'>300m</p>
   <p style='position:absolute;left:100%'>more than 300m</p>
</div>

Возможно, вам придется дать ярлыки фиксированной ширины

Другие вопросы по тегам