Если у ползунка Jquery UI Sortable задан очень мелкий шаг (свойство step), то становится не удобно выбирать точное значение. Отдельные кнопки прибавления и уменьшения значения устранят эту неудобность.
Так же в пример добавлена возможность зажимать кнопки для автоматического увеличения или изменения значения.
<!-- Jquery UI sortable -->
<div id="slider"></div>
<!-- Кнопки -->
<button class="slider-btn" data-dir="minus">-0.1</button>
<button class="slider-btn" data-dir="plus">+0.1</button>
<!-- Результат -->
<input type="text" id="val" value="">
<script src="/jquery.min.js"></script>
<script src="/jquery-ui.min.js"></script>
<link rel="stylesheet" href="/jquery-ui.min.css">
<script>
$(function(){
var pressTimer;
$('#slider').slider({
range: 'min',
min: 0,
max: 100,
value: 50,
step: 0.5,
slide: function(event, ui){
$('#val').val(ui.value);
}
});
$('.slider-btn').click(function() {
var $slider = $("#slider");
var value =$slider.slider("value");
var min = $slider.slider("option", "min");
var max = $slider.slider("option", "max");
var step = $slider.slider("option", "step");
if (value > max){
value = max;
} else if (value < min){
value = min;
}
if ($(this).data("dir") == "plus") {
let val = value + step;
$slider.slider("value", val);
$('#val').val(val);
} else {
let val = value - step;
$slider.slider("value", val);
$('#val').val(val);
}
return false;
});
$(".slider-btn").mouseup(function(){
clearTimeout(pressTimer);
}).mousedown(function(){
let target = this;
pressTimer = window.setInterval(function() {
$(target).trigger('click');
}, 100);
}).mouseout(function(){
clearTimeout(pressTimer);
});
});
</script>