I did the similar thing. Here is the related css and javascript code segments to achieve it.
Let say I want left side green, mid yellow and right side red, then
CSS
.irs-line-left {
background: #66b032;
width: 60%;
}
.irs-line-mid {
background: #FFBF00;
}
.irs-line-mid:before {
content: '';
background-color: #FF0000;
position: absolute;
left: 54%;
top: 0;
right: 0;
bottom: 0;
}
.budget-page .irs-line-right {
background: #FF0000;
width: 40%;
}
.budget-page .irs-line-mid {
width: 0 !important;
}
.irs-bar {
background: #FFBF00;
}
Now here is the trick. When you change the two points we need to change the left and right side width to change the color width dynamically.
Javascript section.
var iri_line_left = $(".irs-line-left");
var iri_line_right = $(".irs-line-right");
$("#color-slider").ionRangeSlider({
type: "double",
min: 0,
max: 100,
from: 60,
to: 80,
grid: true,
onChange: function (data) {
var leftWidth = Math.ceil(data.from_percent);
var rightWidth = 100 - leftWidth;
// set left side width
iri_line_left.css({ 'width': leftWidth + "%" });
// set right side width
iri_line_right.css({ 'width': rightWidth + "%" });
}
});
Hope this will help you.