ion.rangeSlider test playground
by Hassan Rehman
HTML
<script src="http://ionden.com/a/plugins/ion.rangeSlider/static/js/ion-rangeSlider/ion.rangeSlider.js"></script>
<link rel="stylesheet" href="http://ionden.com/a/plugins/ion.rangeSlider/static/css/ion.rangeSlider.css">
<link rel="stylesheet" href="http://ionden.com/a/plugins/ion.rangeSlider/static/css/ion.rangeSlider.skinFlat.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.js"></script>
<div class="range-slider">
<input type="text" class="js-range-slider" value="" />
</div>
<div class="extra-controls">
Placeholder for some buttons to change slider behavior
</div>
CSS
body {
margin: 40px 15px;
font-family: Arial, sans-serif;
font-size: 12px;
}
.range-slider {
position: relative;
height: 80px;
}
.extra-controls {
position: relative;
border-top: 3px solid #000;
padding: 10px 0 0;
}
JavaScript
var $range = $(".js-range-slider");
mil = 10**6
bil = mil*1000
values = []
function get_values( min, max, step ) {
count = ( (max - min) / step ) + 1
return _.map(_.times(count), function(i){ return i*step + min })
}
values = values.concat( get_values(0, 1*bil, 50*mil) )
values = values.concat( get_values(1*bil + 0.5*bil, 10*bil, 500*mil) )
//TODO: 10bil (intersection) is coming twice
$range.ionRangeSlider({
type: "double",
values: values,
grid: true,
prettify_enabled: true,
prettify: function(num) {
mil = 10**6
bil = mil*1000
if( num >= (1*bil) )
return (num / (1*bil) ) + "Bn"
else if( num >= (1*mil) )
return ( num / (1*mil) ) + "m"
else
return num + ""
}
});