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-horizontalorui-slider-verticaldepending on theorientationoption of the slider.-
ui-slider-handle: One of the slider handles. -
ui-slider-range: The selected range used when therangeoption is set. This element can additionally have a class ofui-slider-range-minorui-slider-range-maxif therangeoption 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>