Slider Widgetversion added: 1.5
Description: Drag a handle to select a numeric value.
The jQuery UI Slider plugin makes selected elements into sliders. There are various options such as multiple handles and ranges. The handle can be moved with the mouse or the arrow keys.
The slider widget will create handle elements with the class ui-slider-handle
on initialization. You can specify custom handle elements by creating and appending the elements and adding the ui-slider-handle
class before initialization. It will only create the number of handles needed to match the length of value
/values
. For example, if you specify values: [ 1, 5, 18 ]
and create one custom handle, the plugin will create the other two.
Theming
The slider widget uses the jQuery UI CSS framework to style its look and feel. If slider specific styling is needed, the following CSS class names can be used for overrides or as keys for the classes
option:
-
ui-slider
: The track of the slider control. This element will additionally have a class name ofui-slider-horizontal
orui-slider-vertical
depending on theorientation
option of the slider.-
ui-slider-handle
: One of the slider handles. -
ui-slider-range
: The selected range used when therange
option is set. This element can additionally have a class ofui-slider-range-min
orui-slider-range-max
if therange
option is set to"min"
or"max"
respectively.
-
Dependencies
Additional Notes:
- This widget requires some functional CSS, otherwise it won't work. If you build a custom theme, use the widget's specific CSS file as a starting point.
Options
animate
false
- Boolean: When set to
true
, the handle will animate with the default duration. - String: The name of a speed, such as
"fast"
or"slow"
. - Number: The duration of the animation, in milliseconds.
Initialize the slider with the animate
option specified:
$( ".selector" ).slider({ animate: "fast" });
Get or set the animate
option, after initialization:
// Getter var animate = $( ".selector" ).slider( "option", "animate" ); // Setter $( ".selector" ).slider( "option", "animate", "fast" );
classes
{ "ui-slider": "ui-corner-all", "ui-slider-handle": "ui-corner-all", "ui-slider-range": "ui-corner-all ui-widget-header" }
Specify additional classes to add to the widget's elements. Any of classes specified in the Theming section can be used as keys to override their value. To learn more about this option, check out the learn article about the classes
option.
Initialize the slider with the classes
option specified, changing the theming for the ui-slider
class:
$( ".selector" ).slider({ classes: { "ui-slider": "highlight" } });
Get or set a property of the classes
option, after initialization, here reading and changing the theming for the ui-slider
class:
// Getter var themeClass = $( ".selector" ).slider( "option", "classes.ui-slider" ); // Setter $( ".selector" ).slider( "option", "classes.ui-slider", "highlight" );
disabled
false
true
.Initialize the slider with the disabled
option specified:
$( ".selector" ).slider({ disabled: true });
Get or set the disabled
option, after initialization:
// Getter var disabled = $( ".selector" ).slider( "option", "disabled" ); // Setter $( ".selector" ).slider( "option", "disabled", true );
max
100
Initialize the slider with the max
option specified:
$( ".selector" ).slider({ max: 50 });
Get or set the max
option, after initialization:
// Getter var max = $( ".selector" ).slider( "option", "max" ); // Setter $( ".selector" ).slider( "option", "max", 50 );
min
0
Initialize the slider with the min
option specified:
$( ".selector" ).slider({ min: 10 });
Get or set the min
option, after initialization:
// Getter var min = $( ".selector" ).slider( "option", "min" ); // Setter $( ".selector" ).slider( "option", "min", 10 );
orientation
"horizontal"
"horizontal"
, "vertical"
.Initialize the slider with the orientation
option specified:
$( ".selector" ).slider({ orientation: "vertical" });
Get or set the orientation
option, after initialization:
// Getter var orientation = $( ".selector" ).slider( "option", "orientation" ); // Setter $( ".selector" ).slider( "option", "orientation", "vertical" );
range
false
- Boolean: If set to
true
, the slider will detect if you have two handles and create a styleable range element between these two. - String: Either
"min"
or"max"
. A min range goes from the slider min to one handle. A max range goes from one handle to the slider max.
Initialize the slider with the range
option specified:
$( ".selector" ).slider({ range: true });
Get or set the range
option, after initialization:
// Getter var range = $( ".selector" ).slider( "option", "range" ); // Setter $( ".selector" ).slider( "option", "range", true );
step
1
Initialize the slider with the step
option specified:
$( ".selector" ).slider({ step: 5 });
Get or set the step
option, after initialization:
// Getter var step = $( ".selector" ).slider( "option", "step" ); // Setter $( ".selector" ).slider( "option", "step", 5 );
value
0
Initialize the slider with the value
option specified:
$( ".selector" ).slider({ value: 10 });
Get or set the value
option, after initialization:
// Getter var value = $( ".selector" ).slider( "option", "value" ); // Setter $( ".selector" ).slider( "option", "value", 10 );
values
null
range
option is set to true
, the length of values
should be 2.Initialize the slider with the values
option specified:
$( ".selector" ).slider({ values: [ 10, 25 ] });
Get or set the values
option, after initialization:
// Getter var values = $( ".selector" ).slider( "option", "values" ); // Setter $( ".selector" ).slider( "option", "values", [ 10, 25 ] );
Methods
destroy()Returns: jQuery (plugin only)
- This method does not accept any arguments.
Invoke the destroy method:
$( ".selector" ).slider( "destroy" );
disable()Returns: jQuery (plugin only)
- This method does not accept any arguments.
Invoke the disable method:
$( ".selector" ).slider( "disable" );
enable()Returns: jQuery (plugin only)
- This method does not accept any arguments.
Invoke the enable method:
$( ".selector" ).slider( "enable" );
instance()Returns: Object
Retrieves the slider's instance object. If the element does not have an associated instance, undefined
is returned.
Unlike other widget methods, instance()
is safe to call on any element after the slider plugin has loaded.
- This method does not accept any arguments.
Invoke the instance method:
$( ".selector" ).slider( "instance" );
option( optionName )Returns: Object
Gets the value currently associated with the specified optionName
.
Note: For options that have objects as their value, you can get the value of a specific key by using dot notation. For example, "foo.bar"
would get the value of the bar
property on the foo
option.
- optionNameType: StringThe name of the option to get.
Invoke the method:
var isDisabled = $( ".selector" ).slider( "option", "disabled" );
option()Returns: PlainObject
- This signature does not accept any arguments.
Invoke the method:
var options = $( ".selector" ).slider( "option" );
option( optionName, value )Returns: jQuery (plugin only)
Sets the value of the slider option associated with the specified optionName
.
Note: For options that have objects as their value, you can set the value of just one property by using dot notation for optionName
. For example, "foo.bar"
would update only the bar
property of the foo
option.
- optionNameType: StringThe name of the option to set.
- valueType: ObjectA value to set for the option.
Invoke the method:
$( ".selector" ).slider( "option", "disabled", true );
option( options )Returns: jQuery (plugin only)
- optionsType: ObjectA map of option-value pairs to set.
Invoke the method:
$( ".selector" ).slider( "option", { disabled: true } );
value()Returns: Number
- This signature does not accept any arguments.
Invoke the method:
var selection = $( ".selector" ).slider( "value" );
value( value )Returns: jQuery (plugin only)
- valueType: NumberThe value to set.
Invoke the method:
$( ".selector" ).slider( "value", 55 );
values()Returns: Array
- This signature does not accept any arguments.
Invoke the method:
var values = $( ".selector" ).slider( "values" );
values( index )Returns: Number
- indexType: IntegerThe zero-based index of the handle.
Invoke the method:
var value = $( ".selector" ).slider( "values", 0 );
values( index, value )Returns: jQuery (plugin only)
Invoke the method:
$( ".selector" ).slider( "values", 0, 55 );
values( values )Returns: jQuery (plugin only)
- valuesType: ArrayThe values to set.
Invoke the method:
$( ".selector" ).slider( "values", [ 55, 105 ] );
widget()Returns: jQuery
jQuery
object containing the slider. - This method does not accept any arguments.
Invoke the widget method:
var widget = $( ".selector" ).slider( "widget" );
Events
change( event, ui )Type: slidechange
value
method.Initialize the slider with the change callback specified:
$( ".selector" ).slider({ change: function( event, ui ) {} });
Bind an event listener to the slidechange event:
$( ".selector" ).on( "slidechange", function( event, ui ) {} );
create( event, ui )Type: slidecreate
Note: The ui
object is empty but included for consistency with other events.
Initialize the slider with the create callback specified:
$( ".selector" ).slider({ create: function( event, ui ) {} });
Bind an event listener to the slidecreate event:
$( ".selector" ).on( "slidecreate", function( event, ui ) {} );
slide( event, ui )Type: slide
ui.value
represents the value that the handle will have as a result of the current movement. Canceling the event will prevent the handle from moving and the handle will continue to have its previous value.- eventType: Event
- uiType: Object
- handleType: jQueryThe jQuery object representing the handle being moved.
- handleIndexType: NumberThe numeric index of the handle being moved.
- valueType: NumberThe value that the handle will move to if the event is not canceled.
- valuesType: ArrayAn array of the current values of a multi-handled slider.
-
Initialize the slider with the slide callback specified:
$( ".selector" ).slider({ slide: function( event, ui ) {} });
Bind an event listener to the slide event:
$( ".selector" ).on( "slide", function( event, ui ) {} );
start( event, ui )Type: slidestart
Initialize the slider with the start callback specified:
$( ".selector" ).slider({ start: function( event, ui ) {} });
Bind an event listener to the slidestart event:
$( ".selector" ).on( "slidestart", function( event, ui ) {} );
stop( event, ui )Type: slidestop
Initialize the slider with the stop callback specified:
$( ".selector" ).slider({ stop: function( event, ui ) {} });
Bind an event listener to the slidestop event:
$( ".selector" ).on( "slidestop", function( event, ui ) {} );
Example:
A simple jQuery UI Slider.
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>slider demo</title> <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/smoothness/jquery-ui.css"> <style>#slider { margin: 10px; } </style> <script src="//code.jquery.com/jquery-1.12.4.js"></script> <script src="//code.jquery.com/ui/1.12.1/jquery-ui.js"></script> </head> <body> <div id="slider"></div> <script> $( "#slider" ).slider(); </script> </body> </html>