Проблема с ползунком jQuery, достигающая минимальных и максимальных значений - PullRequest
5 голосов
/ 20 января 2010

У меня инициализирован ползунок jQuery, а затем динамически устанавливаются значения min max, зависящие от содержимого json-запроса. Шаги av даже 100, min a max пересчитываются до четных сотен, в большинстве случаев где-то между 300 и 4800.

Значения и настройки ползунка в порядке, но когда я перемещаю ручку, я не могу получить ее до конца, она останавливается в нескольких шагах от минимальных / максимальных значений. Почему это так?

Я пробовал все виды вещей, ничего не работает. В итоге я добавил 200 в верхнем значении и вычел 200 в нижнем и для компенсации, но это взлом, а не решение.

Ответы [ 3 ]

6 голосов
/ 28 января 2010

В обратном вызове слайда попробуйте использовать значение ui.value, чтобы получить значение. Это решило мою проблему. Увидеть Ползунок jQuery UI - не может перейти к 0 , за исключением того, что не идут по ответу, переходят от комментария к ответу.

0 голосов
/ 17 октября 2016

У меня была похожая проблема с этими настройками

min: 35000.74
max: 150000
step: 1 //(default, did not actually change it)

и ползунок дошел до 149999,74. Конечно, в моем случае проблема заключалась в том, что, учитывая шаг 1 и диапазон, который не делится равномерно на эти шаги, одно из конечных значений никогда не может быть достигнуто с помощью ползунка.

Изменен минимум на 35000 (Math.floor ()), и все заработало как шарм.

0 голосов
/ 13 января 2016

Я понимаю, что этому вопросу 5 лет, но я только что столкнулся с подобной проблемой сегодня. У меня был короткий слайдер с множеством шагов, он пошел от 0 до 1 с шагом 0,01. Рукоятка ползунка столкнется с концами ползунка, прежде чем ударить по самым дальним ступеням, поэтому я смог опуститься только до 0,02 и до 0,98.

Если кто-то столкнется с этой проблемой, быстрый обходной путь - просто заставить ваши минимальные и максимальные значения пойти немного дальше, чем они должны, и скорректируйте ваше значение, если пользователь проскользнет мимо них.

('.slider-container').slider({
                min: -0.02, max: 1.02, step: 0.01, slide: function () {

                    // make values below 0 and over 1 snap back
                    if ($(this).slider('value') < 0) {
                        $(this).slider('value', 0);
                    }

                    if ($(this).slider('value') > 1) {
                        $(this).slider('value', 1);
                    }
});
...