Slider Widget


Slider Widgetversion added: 1.5

Description: Drag a handle to select a numeric value.

QuickNavExamples

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 of ui-slider-horizontal or ui-slider-vertical depending on the orientation option of the slider.
    • ui-slider-handle: One of the slider handles.
    • ui-slider-range: The selected range used when the range option is set. This element can additionally have a class of ui-slider-range-min or ui-slider-range-max if the range 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 

Type: Boolean or String or Number
Default: false
Whether to slide the handle smoothly when the user clicks on the slider track. Also accepts any valid animation duration.
Multiple types supported:
  • 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.
Code examples:

Initialize the slider with the animate option specified:

1
2
3
$( ".selector" ).slider({
animate: "fast"
});

Get or set the animate option, after initialization:

1
2
3
4
5
// Getter
var animate = $( ".selector" ).slider( "option", "animate" );
// Setter
$( ".selector" ).slider( "option", "animate", "fast" );

classes 

Type: Object
Default:
{
"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.

Code examples:

Initialize the slider with the classes option specified, changing the theming for the ui-slider class:

1
2
3
4
5
$( ".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:

1
2
3
4
5
// Getter
var themeClass = $( ".selector" ).slider( "option", "classes.ui-slider" );
// Setter
$( ".selector" ).slider( "option", "classes.ui-slider", "highlight" );

disabled 

Type: Boolean
Default: false
Disables the slider if set to true.
Code examples:

Initialize the slider with the disabled option specified:

1
2
3
$( ".selector" ).slider({
disabled: true
});

Get or set the disabled option, after initialization:

1
2
3
4
5
// Getter
var disabled = $( ".selector" ).slider( "option", "disabled" );
// Setter
$( ".selector" ).slider( "option", "disabled", true );

max 

Type: Number
Default: 100
The maximum value of the slider.
Code examples:

Initialize the slider with the max option specified:

1
2
3
$( ".selector" ).slider({
max: 50
});

Get or set the max option, after initialization:

1
2
3
4
5
// Getter
var max = $( ".selector" ).slider( "option", "max" );
// Setter
$( ".selector" ).slider( "option", "max", 50 );

min 

Type: Number
Default: 0
The minimum value of the slider.
Code examples:

Initialize the slider with the min option specified:

1
2
3
$( ".selector" ).slider({
min: 10
});

Get or set the min option, after initialization:

1
2
3
4
5
// Getter
var min = $( ".selector" ).slider( "option", "min" );
// Setter
$( ".selector" ).slider( "option", "min", 10 );

orientation 

Type: String
Default: "horizontal"
Determines whether the slider handles move horizontally (min on left, max on right) or vertically (min on bottom, max on top). Possible values: "horizontal", "vertical".
Code examples:

Initialize the slider with the orientation option specified:

1
2
3
$( ".selector" ).slider({
orientation: "vertical"
});

Get or set the orientation option, after initialization:

1
2
3
4
5
// Getter
var orientation = $( ".selector" ).slider( "option", "orientation" );
// Setter
$( ".selector" ).slider( "option", "orientation", "vertical" );

range 

Type: Boolean or String
Default: false
Whether the slider represents a range.
Multiple types supported:
  • 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.
Code examples:

Initialize the slider with the range option specified:

1
2
3
$( ".selector" ).slider({
range: true
});

Get or set the range option, after initialization:

1
2
3
4
5
// Getter
var range = $( ".selector" ).slider( "option", "range" );
// Setter
$( ".selector" ).slider( "option", "range", true );

step 

Type: Number
Default: 1
Determines the size or amount of each interval or step the slider takes between the min and max. The full specified value range of the slider (max - min) should be evenly divisible by the step.
Code examples:

Initialize the slider with the step option specified:

1
2
3
$( ".selector" ).slider({
step: 5
});

Get or set the step option, after initialization:

1
2
3
4
5
// Getter
var step = $( ".selector" ).slider( "option", "step" );
// Setter
$( ".selector" ).slider( "option", "step", 5 );

value 

Type: Number
Default: 0
Determines the value of the slider, if there's only one handle. If there is more than one handle, determines the value of the first handle.
Code examples:

Initialize the slider with the value option specified:

1
2
3
$( ".selector" ).slider({
value: 10
});

Get or set the value option, after initialization:

1
2
3
4
5
// Getter
var value = $( ".selector" ).slider( "option", "value" );
// Setter
$( ".selector" ).slider( "option", "value", 10 );

values 

Type: Array
Default: null
This option can be used to specify multiple handles. If the range option is set to true, the length of values should be 2.
Code examples:

Initialize the slider with the values option specified:

1
2
3
$( ".selector" ).slider({
values: [ 10, 25 ]
});

Get or set the values option, after initialization:

1
2
3
4
5
// Getter
var values = $( ".selector" ).slider( "option", "values" );
// Setter
$( ".selector" ).slider( "option", "values", [ 10, 25 ] );

Methods

destroy()Returns: jQuery (plugin only)

Removes the slider functionality completely. This will return the element back to its pre-init state.
  • This method does not accept any arguments.
Code examples:

Invoke the destroy method:

1
$( ".selector" ).slider( "destroy" );

disable()Returns: jQuery (plugin only)

Disables the slider.
  • This method does not accept any arguments.
Code examples:

Invoke the disable method:

1
$( ".selector" ).slider( "disable" );

enable()Returns: jQuery (plugin only)

Enables the slider.
  • This method does not accept any arguments.
Code examples:

Invoke the enable method:

1
$( ".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.
Code examples:

Invoke the instance method:

1
$( ".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.

  • optionName
    Type: String
    The name of the option to get.
Code examples:

Invoke the method:

1
var isDisabled = $( ".selector" ).slider( "option", "disabled" );

option()Returns: PlainObject

Gets an object containing key/value pairs representing the current slider options hash.
  • This signature does not accept any arguments.
Code examples:

Invoke the method:

1
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.

  • optionName
    Type: String
    The name of the option to set.
  • value
    Type: Object
    A value to set for the option.
Code examples:

Invoke the method:

1
$( ".selector" ).slider( "option", "disabled", true );

option( options )Returns: jQuery (plugin only)

Sets one or more options for the slider.
  • options
    Type: Object
    A map of option-value pairs to set.
Code examples:

Invoke the method:

1
$( ".selector" ).slider( "option", { disabled: true } );

value()Returns: Number

Get the value of the slider.
  • This signature does not accept any arguments.
Code examples:

Invoke the method:

1
var selection = $( ".selector" ).slider( "value" );

value( value )Returns: jQuery (plugin only)

Set the value of the slider.
  • value
    Type: Number
    The value to set.
Code examples:

Invoke the method:

1
$( ".selector" ).slider( "value", 55 );

values()Returns: Array

Get the value for all handles.
  • This signature does not accept any arguments.
Code examples:

Invoke the method:

1
var values = $( ".selector" ).slider( "values" );

values( index )Returns: Number

Get the value for the specified handle.
  • index
    Type: Integer
    The zero-based index of the handle.
Code examples:

Invoke the method:

1
var value = $( ".selector" ).slider( "values", 0 );

values( index, value )Returns: jQuery (plugin only)

Set the value for the specified handle.
  • index
    Type: Integer
    The zero-based index of the handle.
  • value
    Type: Number
    The value to set.
Code examples:

Invoke the method:

1
$( ".selector" ).slider( "values", 0, 55 );

values( values )Returns: jQuery (plugin only)

Set the value for all handles.
  • values
    Type: Array
    The values to set.
Code examples:

Invoke the method:

1
$( ".selector" ).slider( "values", [ 55, 105 ] );

widget()Returns: jQuery

Returns a jQuery object containing the slider.
  • This method does not accept any arguments.
Code examples:

Invoke the widget method:

1
var widget = $( ".selector" ).slider( "widget" );

Events

change( event, ui )Type: slidechange

Triggered after the user slides a handle, if the value has changed; or if the value is changed programmatically via the value method.
  • event
    Type: Event
  • ui
    Type: Object
    • handle
      Type: Element
      The HTML element representing the handle that was changed.
    • handleIndex
      Type: Number
      The numeric index of the handle that was moved.
    • value
      Type: Number
      The current value of the slider.
Code examples:

Initialize the slider with the change callback specified:

1
2
3
$( ".selector" ).slider({
change: function( event, ui ) {}
});

Bind an event listener to the slidechange event:

1
$( ".selector" ).on( "slidechange", function( event, ui ) {} );

create( event, ui )Type: slidecreate

Triggered when the slider is created.

Note: The ui object is empty but included for consistency with other events.

Code examples:

Initialize the slider with the create callback specified:

1
2
3
$( ".selector" ).slider({
create: function( event, ui ) {}
});

Bind an event listener to the slidecreate event:

1
$( ".selector" ).on( "slidecreate", function( event, ui ) {} );

slide( event, ui )Type: slide

Triggered on every mouse move during slide. The value provided in the event as 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.
  • event
    Type: Event
  • ui
    Type: Object
    • handle
      Type: Element
      The HTML element representing the handle being moved.
    • handleIndex
      Type: Number
      The numeric index of the handle being moved.
    • value
      Type: Number
      The value that the handle will move to if the event is not canceled.
    • values
      Type: Array
      An array of the current values of a multi-handled slider.
Code examples:

Initialize the slider with the slide callback specified:

1
2
3
$( ".selector" ).slider({
slide: function( event, ui ) {}
});

Bind an event listener to the slide event:

1
$( ".selector" ).on( "slide", function( event, ui ) {} );

start( event, ui )Type: slidestart

Triggered when the user starts sliding.
  • event
    Type: Event
  • ui
    Type: Object
    • handle
      Type: Element
      The HTML element representing the handle being moved.
    • handleIndex
      Type: Number
      The numeric index of the handle being moved.
    • value
      Type: Number
      The current value of the slider.
Code examples:

Initialize the slider with the start callback specified:

1
2
3
$( ".selector" ).slider({
start: function( event, ui ) {}
});

Bind an event listener to the slidestart event:

1
$( ".selector" ).on( "slidestart", function( event, ui ) {} );

stop( event, ui )Type: slidestop

Triggered after the user slides a handle.
  • event
    Type: Event
  • ui
    Type: Object
    • handle
      Type: Element
      The HTML element representing the handle that was moved.
    • handleIndex
      Type: Number
      The numeric index of the handle that was moved.
    • value
      Type: Number
      The current value of the slider.
Code examples:

Initialize the slider with the stop callback specified:

1
2
3
$( ".selector" ).slider({
stop: function( event, ui ) {}
});

Bind an event listener to the slidestop event:

1
$( ".selector" ).on( "slidestop", function( event, ui ) {} );

Example:

A simple jQuery UI Slider.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>slider demo</title>
<link rel="stylesheet" href="https://code.jquery.com/ui/1.13.3/themes/smoothness/jquery-ui.css">
<style>#slider { margin: 10px; } </style>
<script src="https://code.jquery.com/jquery-3.7.1.js"></script>
<script src="https://code.jquery.com/ui/1.13.3/jquery-ui.js"></script>
</head>
<body>
<div id="slider"></div>
<script>
$( "#slider" ).slider();
</script>
</body>
</html>

Demo: