$(function() {
$("#slider-range-custom").slider({
range: true,
min: 0,
max: 100,
values: [0, 10],
create: function() {
var $self = $(this);
$(".ui-slider-handle", this).css({
height: ($self.height() - 4) + "px",
width: "5px",
top: "1px",
borderColor: "black",
margin: 0,
cursor: 'e-resize',
})
},
slide: function(event, ui) {
var smin = $('#slider-range-custom').attr('min');
var smax = $('#slider-range-custom').attr('max');
var span = $('#slider-range-custom').find('span');
var divRect = $('[class="ui-slider-range ui-corner-all ui-widget-header"]')
if ((event.clientX >= divRect.offset().left + 10 && event.clientX <= divRect.offset().left + divRect.width() - 10)) {
if (event.originalEvent) {
event.preventDefault();
var prevX = $('#slider-range-custom').attr('prevX') || 0;
$('#slider-range-custom').attr('prevX', event.clientX);
if (event.clientX < prevX) {
$('#slider-range-custom').attr('direction', 'left');
} else {
$('#slider-range-custom').attr('direction', 'right');
}
return;
} else {
$('#slider-range-custom').attr('direction', 'none');
return;
}
} else {
$('#slider-range-custom').attr('direction', 'none');
if (!($(span[0]).hasClass('ui-state-hover') || $(span[1]).hasClass('ui-state-hover'))) {
event.preventDefault();
return;
}
}
},
change: function(event, ui) {
$('#slider-range-custom').attr('min', ui.values[0]);
$('#slider-range-custom').attr('max', ui.values[1]);
var direction = $('#slider-range-custom').attr('direction');
if (direction == 'left') {
if (event.originalEvent) {
$(this).slider('values', [ui.values[0] - 5, ui.values[1] - 5])
}
} else if (direction == 'right') {
if (event.originalEvent) {
$(this).slider('values', [ui.values[0] + 5, ui.values[1] + 5])
}
}
},
});
});
.ui-slider-range {
background: transparent !important;
;
cursor: move;
}
<link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<div id="control-pannel" style="margin: 0 auto;width: 75%;">
<div id="slider-range-custom" min="0" max="10" class="ui-slider-handle" style="height: 100px; background:transparent;
">
<svg class="chart" width="100%">
<polyline
fill="none"
stroke="#0074d9"
stroke-width="2"
points="
1,100
20,60
40,80
60,20
80,30
100,75
120,60,
140,33
160,37
180,40
200,45
220,20
240,2
260,10
280,75
300,60
320,45
340,30
360,20
380,10
400,19
420,12
440,45
460,50
480,80"/>
</svg>
</div>
</div>