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 + ""
    }
});