jquery.nstSlider.js
Fully customizable with CSS, Single/Double handles, Touch-enabled, IE 7+ Compatibility, Custom Digit Rounding, Non linear step increments!
Example
Initialize with:
$(".mySlider").nstSlider({ "left_grip_selector": ".leftGrip", "right_grip_selector": ".rightGrip", "value_bar_selector": ".bar", "value_changed_callback": function(cause, minValue, maxValue, prevMinValue, prevMaxValue) { // show the suggested values in your min/max labels elements } });Method call:
$(".mySlider").nstSlider("set_position", 10 /* min */, 90 /* max */);Destroy with:
$(".mySlider").nstSlider("teardown");Demo
For live demos please visit the project webpage:
http://lokku.github.io/jquery-nstslider/
For a Quick Start have a look at the source html of the following file:
https://github.com/lokku/jquery-nstslider/blob/master/demo/index.html
Options
| Option | Type | Default | Description |
|---|---|---|---|
| animating_css_class | string | nst-animating | the css class to be used when the slider is to be animated (this happens when a certain min/max value is being set for example). |
| touch_tolerance_value_bar_x | number | 15 | the horizontal tolerance in pixels by which a handle of the slider should be grabbed if the user touches outside the slider bar area. |
| touch_tolerance_value_bar_y | number | 30 | the vertical tolerance in pixels by which a handle of the slider should be grabbed if the user touches outside the slider bar area. |
| left_grip_selector | string | .nst-slider-grip-left | the selector of the left grip handle. The left grip element must exist in the page when the slider is initialized. |
| right_grip_selector | string | undefined | the selector of the right grip handle. This is optional. A single handler bar is assumed if this selector is not specified. |
| value_bar_selector | string | undefined | the selector of the value bar. If not specified assumes a value bar representing the selection is not wanted. |
| rounding | object or number | 1 | the rounding for a certain value displayed on the slider. This rounds the values returned in the value_changed_callback as roundedValue : int(actualValue / rounding) * rounding. The rounding parameter can be a number (i.e., fixed rounding) or can depend on actualValue (i.e., dynamic rounding). To perform dynamic rounding an object must be passed instead of a value. For example, passing rounding : { '1' : '100', '10' : '1000', '50' : '10000' } will use rounding = 1 when actualValue <= 100, rounding = 10 when 100 < actualValue <= 1000 and so on... |
| crossable_handles | boolean | true | Allow handles to cross each other while one of them is being dragged. This option is ignored if just one handle is used. |
| value_changed_callback | function | function(cause, curMin, curMax, prevMin, prevMax) { return; } | a callback called whenever the user drags one of the handles. |
| user_mouseup_callback | function | function(vmin, vmax, left_grip_moved) { return; } | a callback called whenever the mouse button pressed while dragging a slider grip is released |
| user_drag_start_callback | function | function () { return; } | a callback called before the user drags one of the handles |
Methods
When calling methods, use positional arguments. For example, for the set_position method, call:
$(".mySlider").nstSlider("set_position", 10 /* min */, 90 /* max */);do not call:
$(".mySlider").nstSlider("set_position", { min: 10, max: 90 });unless the documentation says that the first argument is an object.
| Method | Arguments (positional) | Description |
|---|---|---|
| get_range_min | None | return the current minimum range of the slider |
| get_range_max | None | return the current maximum range of the slider |
| get_current_min_value | None | return the current minimum value of the slider |
| get_current_max_value | None | return the current maximum value of the slider |
| is_handle_to_left_extreme | None | return a boolean indicating whether or not the left handler is moved all the way to the left |
| is_handle_to_right_extreme | None | return a boolean indicating whether or not the right handler is moved all the way to the right |
| refresh | None | force a refresh of the slider |
| disable | None | disable the slider (i.e., user cannot move the handles) |
| enable | None | enable the slider (i.e., user can move the handles) |
| is_enabled | None | return a boolean indicating whether or not the slider can be moved by the user |
| set_position | min: number, max: number | set the handles at the specified min and max values |
| set_step_histogram | histogram : array of numbers | use a non-linear step increment for the slider that is stretched where the histogram provided counts more items |
| unset_step_histogram | None | use a linear scale of increments for the slider |
| set_range | rangeMin : number, rangeMax : number | set the minimum and the maximum range of values the slider |
| set_rounding | rounding: number or object | set the rounding for the slider |
| get_rounding | None | return the current rounding of the slider |
| teardown | None | remove all data stored in the slider |
| value_to_px | number | given a value in the range of the slider, returns the corresponding value in pixel relative to the slider width |
Dependencies
jQuery 1.6.4+
License
Copyright (c) 2014 Lokku Ltd.
Licensed under the MIT license.