Проблема с ползунком jQuery, достигающая минимального и максимального значений

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

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

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

3 ответа

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

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

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

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

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

Я понимаю, что этому вопросу 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);
                    }
});
Другие вопросы по тегам