I am working on a script that I am basing off of an example. In the example they used:
$("#sliderInterval").text("$" + ranges[idx].lower + " - " + "$" + ranges[idx].upper)
to get the price to show up within the green slider. I am wanting to add the price to budgetAmount
, which I accomplished and put the text "BUDGET" in the prices place. However, in doing this, the sliding bar does not slide to the chosen dot anymore.
To see the original effect comment out the code like this:
//$("#sliderInterval").text("$" + ranges[idx].lower + " - " + "$" + ranges[idx].upper)
$("#sliderInterval").text("$" + ranges[idx].lower + " - " + "$" + ranges[idx].upper)
//$("#sliderInterval").text("BUDGET")
//$("#budgetAmount").text("$" + ranges[idx].lower + " - " + "$" + ranges[idx].upper)
Basically, I cannot figure out what to change the following code to in order to allow the green bar to slide at the chosen dot.
$("#sliderInterval").text("$" + ranges[idx].lower + " - " + "$" + ranges[idx].upper)
Also, you will notice that you have to click directly on the dot to get this to slide. Is there a way I can get the surrounding area to make clickable as well?
$(function() {
var ranges = [{
lower: 500,
upper: 1000
}, {
lower: 1100,
upper: 2000
}, {
lower: 2100,
upper: 5000
}, {
lower: 5100,
upper: 10000
}, {
lower: 11000,
upper: 20000
}, {
lower: 21000,
upper: 50000
}, ];
var wslider = $("#sliderBar").width() / (ranges.length);
for (var i = 0; i < ranges.length; i++) {
var range = $('<div class="intervalCircle">');
var left = (100 / (ranges.length) * (i + 0.5));
left = "calc(" + left + "% - 8px)";
range.css("left", left);
range.on("click", function(idx) {
return function() {
var sliderleft = wslider * idx;
//$("#sliderInterval").text("$" + ranges[idx].lower + " - " + "$" + ranges[idx].upper)
//*** HERE *** $("#sliderInterval").text("$" + ranges[idx].lower + " - " + "$" + ranges[idx].upper)
$("#sliderInterval").text("BUDGET")
$("#budgetAmount").text("$" + ranges[idx].lower + " - " + "$" + ranges[idx].upper)
.animate({
left: sliderleft - 2
});
};
}(i));
$("#sliderBar").append(range);
$("#sliderInterval").css("width", wslider + "px");
}
});
#sliderBar {
border-radius: 15px;
width: 90%;
height: 30px;
margin: 30px 10%;
background: #454343;
position: relative;
overflow: hidden;
}
.intervalCircle {
border-radius: 50%;
height: 10px;
width: 10px;
background: red;
z-index: 1;
position: absolute;
margin-top: 10px;
cursor: pointer;
}
.intervalCircle:hover {
}
.rangeSection.active{
background-color: green;
z-index: 3;
}
.sliderInterval:first-child {
padding-left: 0%;
}
.intervalCircle:first-child {
padding-left: 0;
}
#sliderInterval {
height: 100%;
border-radius: 15px;
position: absolute;
text-align: center;
z-index: 999;
color: #FFF;
background-color: green;
}
#budgetAmount {
font-size: 1.5em;
color: blue;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="sliderBar">
<div id="sliderInterval"></div>
</div>
<div id="budgetAmount"></div>