Cool, comfortable and easily customizable range slider with many options and skin support
Package Exports
ion-rangeslider
ion-rangeslider/js/ion.rangeSlider
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (ion-rangeslider) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Choose slider type, could be single - for one handle, or double for two handles
<tr>
<td>min<div><sup>data-min</sup></div></td>
<td>10</td>
<td>number</td>
<td>Set slider minimum value</td>
</tr>
<tr>
<td>max<div><sup>data-max</sup></div></td>
<td>100</td>
<td>number</td>
<td>Set slider maximum value</td>
</tr>
<tr>
<td>from<div><sup>data-from</sup></div></td>
<td>min</td>
<td>number</td>
<td>Set start position for left handle (or for single handle)</td>
</tr>
<tr>
<td>to<div><sup>data-to</sup></div></td>
<td>max</td>
<td>number</td>
<td>Set start position for right handle</td>
</tr>
<tr class="options__step">
<td>step<div><sup>data-step</sup></div></td>
<td>1</td>
<td>number</td>
<td>Set sliders step. Always > 0. Could be fractional.</td>
</tr>
<tr>
<td>min_interval<div><sup>data-min-interval</sup></div></td>
<td>—</td>
<td>number</td>
<td>Set minimum diapason between sliders. Only in "double" type</td>
</tr>
<tr class="options__step">
<td>max_interval<div><sup>data-max-interval</sup></div></td>
<td>—</td>
<td>number</td>
<td>Set maximum diapason between sliders. Only in "double" type</td>
</tr>
<tr class="options__step">
<td>drag_interval<div><sup>data-drag-interval</sup></div></td>
<td>false</td>
<td>boolean</td>
<td>Allow user to drag whole range. Only in "double" type (beta)</td>
</tr>
<tr class="options__step">
<td>values<div><sup>data-values</sup></div></td>
<td>[]</td>
<td>array</td>
<td>Set up your own array of possible slider values. They could be numbers or strings. If the values array is set up, min, max and step param, are no longer can be changed.</td>
</tr>
<tr class="options__new">
<td>from_fixed<div><sup>data-from-fixed</sup></div></td>
<td>false</td>
<td>boolean</td>
<td>Fix position of left (or single) handle.</td>
</tr>
<tr class="options__new">
<td>from_min<div><sup>data-from-min</sup></div></td>
<td>min</td>
<td>number</td>
<td>Set minimum limit for left handle.</td>
</tr>
<tr class="options__new">
<td>from_max<div><sup>data-from-max</sup></div></td>
<td>max</td>
<td>number</td>
<td>Set the maximum limit for left handle</td>
</tr>
<tr class="options__new">
<td>from_shadow<div><sup>data-from-shadow</sup></div></td>
<td>false</td>
<td>boolean</td>
<td>Highlight the limits for left handle</td>
</tr>
<tr class="options__new">
<td>to_fixed<div><sup>data-to-fixed</sup></div></td>
<td>false</td>
<td>boolean</td>
<td>Fix position of right handle.</td>
</tr>
<tr class="options__new">
<td>to_min<div><sup>data-to-min</sup></div></td>
<td>min</td>
<td>number</td>
<td>Set the minimum limit for right handle</td>
</tr>
<tr class="options__new">
<td>to_max<div><sup>data-to-max</sup></div></td>
<td>max</td>
<td>number</td>
<td>Set the maximum limit for right handle</td>
</tr>
<tr class="options__new options__step">
<td>to_shadow<div><sup>data-to-shadow</sup></div></td>
<td>false</td>
<td>boolean</td>
<td>Highlight the limits for right handle</td>
</tr>
<tr>
<td>prettify_enabled<div><sup>data-prettify-enabled</sup></div></td>
<td>true</td>
<td>boolean</td>
<td>Improve readability of long numbers. 10000000 → 10 000 000</td>
</tr>
<tr class="options__new">
<td>prettify_separator<div><sup>data-prettify-separator</sup></div></td>
<td>" "</td>
<td>string</td>
<td>Set up your own separator for long numbers. 10 000, 10.000, 10-000 и т.п.</td>
</tr>
<tr class="options__new options__step">
<td>prettify<div><sup>—</sup></div></td>
<td>null</td>
<td>function</td>
<td>Set up your own prettify function. Can be anything. For example, you can set up unix time as slider values and than transform them to cool looking dates.</td>
</tr>
<tr class="options__new options__step">
<td>force_edges<div><sup>data-force-edges</sup></div></td>
<td>false</td>
<td>boolean</td>
<td>Slider will be always inside it's container.</td>
</tr>
<tr class="options__new">
<td>keyboard<div><sup>data-keyboard</sup></div></td>
<td>false</td>
<td>boolean</td>
<td>Activates keyboard controls. Move left: ←, ↓, A, S. Move right: →, ↑, W, D.</td>
</tr>
<tr class="options__new options__step">
<td>keyboard_step<div><sup>data-keyboard-step</sup></div></td>
<td>5</td>
<td>number</td>
<td>Movement step, than controling from keyboard. In percents.</td>
</tr>
<tr>
<td>grid<div><sup>data-grid</sup></div></td>
<td>false</td>
<td>boolean</td>
<td>Enables grid of values.</td>
</tr>
<tr>
<td>grid_margin<div><sup>data-grid-margin</sup></div></td>
<td>true</td>
<td>boolean</td>
<td>Set left and right grid borders.</td>
</tr>
<tr class="options__new">
<td>grid_num<div><sup>data-grid-num</sup></div></td>
<td>4</td>
<td>number</td>
<td>Number of grid units.</td>
</tr>
<tr class="options__new options__step">
<td>grid_snap<div><sup>data-grid-snap</sup></div></td>
<td>false</td>
<td>boolean</td>
<td>Snap grid to sliders step (step param). If activated, grid_num will not be used.</td>
</tr>
<tr>
<td>hide_min_max<div><sup>data-hide-min-max</sup></div></td>
<td>false</td>
<td>boolean</td>
<td>Hides min and max labels</td>
</tr>
<tr class="options__step">
<td>hide_from_to<div><sup>data-hide-from-to</sup></div></td>
<td>false</td>
<td>boolean</td>
<td>Hide from and to lables</td>
</tr>
<tr>
<td>prefix<div><sup>data-prefix</sup></div></td>
<td>—</td>
<td>string</td>
<td>Set prefix for values. Will be set up right before the number: $100</td>
</tr>
<tr>
<td>postfix<div><sup>data-postfix</sup></div></td>
<td>—</td>
<td>string</td>
<td>Set postfix for values. Will be set up right after the number: 100k</td>
</tr>
<tr>
<td>max_postfix<div><sup>data-max-postfix</sup></div></td>
<td>—</td>
<td>string</td>
<td>Special postfix, used only for maximum value. Will be showed after handle will reach maximum right position. For example 0 — 100+</td>
</tr>
<tr class="options__new">
<td>decorate_both<div><sup>data-decorate-both</sup></div></td>
<td>true</td>
<td>boolean</td>
<td>Used for "double" type and only if prefix or postfix was set up. Determine how to decorate close values. For example: $10k — $100k or $10 — 100k</td>
</tr>
<tr class="options__new options__step">
<td>values_separator<div><sup>data-values-separator</sup></div></td>
<td>" — "</td>
<td>string</td>
<td>Set your own separator for close values. Used for "double" type. Default: 10 — 100. Or you may set: 10 to 100, 10 + 100, 10 → 100 etc.</td>
</tr>
<tr class="options__step">
<td>disable<div><sup>data-disable</sup></div></td>
<td>false</td>
<td>boolean</td>
<td>Locks slider and makes it inactive.</td>
</tr>
<tr>
<td>onStart<div><sup>—</sup></div></td>
<td>null</td>
<td>function</td>
<td>Callback. Is called on slider start.</td>
</tr>
<tr>
<td>onChange<div><sup>—</sup></div></td>
<td>null</td>
<td>function</td>
<td>Callback. IS called on each values change.</td>
</tr>
<tr>
<td>onFinish<div><sup>—</sup></div></td>
<td>null</td>
<td>function</td>
<td>Callback. Is called than user releases handle.</td>
</tr>
<tr class="options__new">
<td>onUpdate<div><sup>—</sup></div></td>
<td>null</td>
<td>function</td>
<td>Callback. Is called than slider is modified by external methods <code>update</code> or <code>reset</code>.</td>
</tr>
</tbody>
Description of data passed to callbacks (onChange and etc.)
Result is object type and passed to callback as first argument:
Obj:{"input": object,// jQuery-link to input"slider": object,// jQuery-link to sliders container"min":0,// MIN value"max":1000,// MAX values"from":100,// FROM value"from_percent":10,// FROM value in percents"from_value":0,// FROM index in values array (if used)"to":900,// TO value"to_percent":90,// TO value in percents"to_value":0// TO index in values array (if used)}
To use public methods, at first you must save slider instance to variable:
// Launch plugin$("#range").ionRangeSlider({type:"double",min:0,max:1000,from:200,to:500,grid:true});// Saving it's instance to varvar slider =$("#range").data("ionRangeSlider");// Fire public method
slider.reset();
There are 3 public methods:
// UPDATE - updates slider to any new values
slider.update({from:300,to:400});// RESET - reset slider to it's first values
slider.reset();// DESTROY - destroys slider and restores original input field
slider.destroy();