Easy Tutorial
❮ Api Datepicker Api Focus ❯

jQuery UI Example - Slider

Drag the handle to select a value.

For more details about the slider widget, please refer to the Slider Widget API Documentation.

Default Functionality

The basic slider is horizontal with a single handle that can be moved with the mouse or arrow keys.

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>jQuery UI Slider - Default Functionality</title>
  <link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
  <script src="//code.jquery.com/jquery-1.9.1.js"></script>
  <script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
  <link rel="stylesheet" href="http://jqueryui.com/resources/demos/style.css">
  <script>
  $(function() {
    $( "#slider" ).slider();
  });
  </script>
</head>
<body>

<div id="slider"></div>

</body>
</html>

View Demo

Colorpicker

Combines three sliders to create a simple RGB color picker.

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>jQuery UI Slider - Colorpicker</title>
  <link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
  <script src="//code.jquery.com/jquery-1.9.1.js"></script>
  <script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
  <link rel="stylesheet" href="http://jqueryui.com/resources/demos/style.css">
  <style>
  #red, #green, #blue {
    float: left;
    clear: left;
    width: 300px;
    margin: 15px;
  }
  #swatch {
    width: 120px;
    height: 100px;
    margin-top: 18px;
    margin-left: 350px;
    background-image: none;
  }
  #red .ui-slider-range { background: #ef2929; }
  #red .ui-slider-handle { border-color: #ef2929; }
  #green .ui-slider-range { background: #8ae234; }
  #green .ui-slider-handle { border-color: #8ae234; }
  #blue .ui-slider-range { background: #729fcf; }
  #blue .ui-slider-handle { border-color: #729fcf; }
  </style>
  <script>
  function hexFromRGB(r, g, b) {
    var hex = [
      r.toString( 16 ),
      g.toString( 16 ),
      b.toString( 16 )
    ];
    $.each( hex, function( nr, val ) {
      if ( val.length === 1 ) {
        hex[ nr ] = "0" + val;
      }
    });
    return hex.join( "" ).toUpperCase();
  }
function refreshSwatch() {
    var red = $( "#red" ).slider( "value" ),
      green = $( "#green" ).slider( "value" ),
      blue = $( "#blue" ).slider( "value" ),
      hex = hexFromRGB( red, green, blue );
    $( "#swatch" ).css( "background-color", "#" + hex );
  }
  $(function() {
    $( "#red, #green, #blue" ).slider({
      orientation: "horizontal",
      range: "min",
      max: 255,
      value: 127,
      slide: refreshSwatch,
      change: refreshSwatch
    });
    $( "#red" ).slider( "value", 255 );
    $( "#green" ).slider( "value", 140 );
    $( "#blue" ).slider( "value", 60 );
  });
  </script>
</head>
<body class="ui-widget-content" style="border:0;">

<p class="ui-state-default ui-corner-all ui-helper-clearfix" style="padding:4px;">
  <span class="ui-icon ui-icon-pencil" style="float:left; margin:-2px 5px 0 0;"></span>
  Simple Color Picker
</p>

<div id="red"></div>
<div id="green"></div>
<div id="blue"></div>

<div id="swatch" class="ui-widget-content ui-corner-all"></div>


</body>
</html>

View Demo

Multiple Sliders

Combine horizontal and vertical sliders, each with their own options, to create a music player UI.

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>jQuery UI Slider - Multiple Sliders</title>
  <link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
  <script src="//code.jquery.com/jquery-1.9.1.js"></script>
  <script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
  <link rel="stylesheet" href="http://jqueryui.com/resources/demos/style.css">
  <style>
  #eq span {
    height:120px; float:left; margin:15px
  }
  </style>
  <script>
  $(function() {
    // Set master volume
    $( "#master" ).slider({
      value: 60,
      orientation: "horizontal",
      range: "min",
      animate: true
    });
    // Set graphic equalizer
    $( "#eq > span" ).each(function() {
      // Read initial values from markup and remove that
      var value = parseInt( $( this ).text(), 10 );
      $( this ).empty().slider({
        value: value,
        range: "min",
        animate: true,
        orientation: "vertical"
      });
<head>
  <script>
  });
  </script>
</head>
<body>

<p class="ui-state-default ui-corner-all ui-helper-clearfix" style="padding:4px;">
  <span class="ui-icon ui-icon-volume-on" style="float:left; margin:-2px 5px 0 0;"></span>
  Master Volume
</p>

<div id="master" style="width:260px; margin:15px;"></div>

<p class="ui-state-default ui-corner-all" style="padding:4px;margin-top:4em;">
  <span class="ui-icon ui-icon-signal" style="float:left; margin:-2px 5px 0 0;"></span>
  Graphic Equalizer
</p>

<div id="eq">
  <span>88</span>
  <span>77</span>
  <span>55</span>
  <span>33</span>
  <span>40</span>
  <span>45</span>
  <span>70</span>
</div>


</body>
</html>

View Demo

Range Slider

Set the range option to true to get a slider with two drag handles for selecting a range of values. The space between the handles is filled with a different background color to indicate that those values are selected.

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>jQuery UI Slider - Range Slider</title>
  <link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
  <script src="//code.jquery.com/jquery-1.9.1.js"></script>
  <script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
  <link rel="stylesheet" href="http://jqueryui.com/resources/demos/style.css">
  <script>
  $(function() {
    $( "#slider-range" ).slider({
      range: true,
      min: 0,
      max: 500,
      values: [ 75, 300 ],
      slide: function( event, ui ) {
        $( "#amount" ).val( "$" + ui.values[ 0 ] + " - $" + ui.values[ 1 ] );
      }
    });
    $( "#amount" ).val( "$" + $( "#slider-range" ).slider( "values", 0 ) +
      " - $" + $( "#slider-range" ).slider( "values", 1 ) );
  });
  </script>
</head>
<body>

<p>
  <label for="amount">Price range:</label>
  <input type="text" id="amount" style="border:0; color:#f6931f; font-weight:bold;">
</p>

<div id="slider-range"></div>


</body>
</html>

View Demo

Range with Fixed Maximum

Fix the maximum value of the range slider, allowing users to select only the minimum value. Set the range option to "max".

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>jQuery UI Slider - Range with Fixed Maximum</title>
<link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.9.1.js"></script>
<script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
<link rel="stylesheet" href="http://jqueryui.com/resources/demos/style.css">
<script>
$(function() {
  $("#slider-range-max").slider({
    range: "max",
    min: 1,
    max: 10,
    value: 2,
    slide: function(event, ui) {
      $("#amount").val(ui.value);
    }
  });
  $("#amount").val($("#slider-range-max").slider("value"));
});
</script>
</head>
<body>

<p>
  <label for="amount">Minimum number of rooms:</label>
  <input type="text" id="amount" style="border:0; color:#f6931f; font-weight:bold;">
</p>
<div id="slider-range-max"></div>

</body>
</html>

View Demo

Range with Fixed Minimum

A fixed range slider with a minimum value, where the user can only select the maximum value. Set the range option to "min".

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>jQuery UI Slider - Range with Fixed Minimum</title>
  <link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
  <script src="//code.jquery.com/jquery-1.9.1.js"></script>
  <script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
  <link rel="stylesheet" href="http://jqueryui.com/resources/demos/style.css">
  <script>
  $(function() {
    $("#slider-range-min").slider({
      range: "min",
      value: 37,
      min: 1,
      max: 700,
      slide: function(event, ui) {
        $("#amount").val("$" + ui.value);
      }
    });
    $("#amount").val("$" + $("#slider-range-min").slider("value"));
  });
  </script>
</head>
<body>

<p>
  <label for="amount">Maximum Price:</label>
  <input type="text" id="amount" style="border:0; color:#f6931f; font-weight:bold;">
</p>

<div id="slider-range-min"></div>

</body>
</html>

View Demo

Slider Bound to Select

How to bind a slider to an existing select element. The select remains visible to display changes. When the selection changes, the slider is updated.

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery UI Slider - Slider bound to select element</title>
<link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.9.1.js"></script>
<script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
<link rel="stylesheet" href="http://jqueryui.com/resources/demos/style.css">
<script>
$(function() {
  var select = $("#minbeds");
  var slider = $("<div id='slider'></div>").insertAfter(select).slider({
    min: 1,
    max: 6,
    range: "min",
    value: select[0].selectedIndex + 1,
    slide: function(event, ui) {
      select[0].selectedIndex = ui.value - 1;
    }
  });
  $("#minbeds").change(function() {
    slider.slider("value", this.selectedIndex + 1);
  });
});
</script>
</head>
<body>

<form id="reservation">
  <label for="minbeds">Minimum number of beds</label>
  <select name="minbeds" id="minbeds">
    <option>1</option>
    <option>2</option>
    <option>3</option>
    <option>4</option>
    <option>5</option>
    <option>6</option>
  </select>
</form>

</body>
</html>

View Demo

Slider Scrollbar

Use the slider to manipulate the positioning of content on the page. In this example, it is a scrollbar that can get values.

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>jQuery UI Slider - Slider Scrollbar</title>
  <link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
  <script src="//code.jquery.com/jquery-1.9.1.js"></script>
  <script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
  <link rel="stylesheet" href="http://jqueryui.com/resources/demos/style.css">
  <style>
  .scroll-pane { overflow: auto; width: 99%; float:left; }
  .scroll-content { width: 2440px; float: left; }
  .scroll-content-item { width: 100px; height: 100px; float: left; margin: 10px; font-size: 3em; line-height: 96px; text-align: center; }
  .scroll-bar-wrap { clear: left; padding: 0 4px 0 2px; margin: 0 -1px -1px -1px; }
  .scroll-bar-wrap .ui-slider { position: relative; top: 0; left: 0; height: 16px; background: #e7e7e7; border: none; margin: 0; }
  .scroll-bar-wrap .ui-slider-handle { position: absolute; top: 0; left: 0; width: 16px; height: 16px; background: #f6a828; border: none; margin: 0; }
  </style>
  <script>
  $(function() {
    $("#slider").slider({
      min: 0,
      max: 2340,
      value: 0,
      slide: function(event, ui) {
        $(".scroll-content").css("left", "-" + ui.value + "px");
      }
    });
  });
  </script>
</head>
<body>

<div class="scroll-pane">
  <div class="scroll-content">
    <div class="scroll-content-item">1</div>
    <div class="scroll-content-item">2</div>
    <div class="scroll-content-item">3</div>
    <div class="scroll-content-item">4</div>
    <div class="scroll-content-item">5</div>
    <div class="scroll-content-item">6</div>
    <div class="scroll-content-item">7</div>
    <div class="scroll-content-item">8</div>
    <div class="scroll-content-item">9</div>
    <div class="scroll-content-item">10</div>
  </div>
</div>

<div class="scroll-bar-wrap">
  <div id="slider"></div>
</div>

</body>
</html>
.scroll-bar-wrap .ui-slider { background: none; border: 0; height: 2em; margin: 0 auto; }
.scroll-bar-wrap .ui-handle-helper-parent { position: relative; width: 100%; height: 100%; margin: 0 auto; }
.scroll-bar-wrap .ui-slider-handle { top: .2em; height: 1.5em; }
.scroll-bar-wrap .ui-slider-handle .ui-icon { margin: -8px auto 0; position: relative; top: 50%; }
$(function() {
  // Scroll pane section
  var scrollPane = $(".scroll-pane"),
      scrollContent = $(".scroll-content");

  // Create slider
  var scrollbar = $(".scroll-bar").slider({
    slide: function(event, ui) {
      if (scrollContent.width() > scrollPane.width()) {
        scrollContent.css("margin-left", Math.round(
          ui.value / 100 * (scrollPane.width() - scrollContent.width())
        ) + "px");
      } else {
        scrollContent.css("margin-left", 0);
      }
    }
  });

  // Append handle helper
  var handleHelper = scrollbar.find(".ui-slider-handle")
    .mousedown(function() {
      scrollbar.width(handleHelper.width());
    })
    .mouseup(function() {
      scrollbar.width("100%");
    })
    .append("<span class='ui-icon ui-icon-grip-dotted-vertical'></span>")
    .wrap("<div class='ui-handle-helper-parent'></div>").parent();

  // Change overflow to hidden due to scroll handle movement
  scrollPane.css("overflow", "hidden");

  // Define scrollbar and handle sizes based on the scroll distance proportionally
  function sizeScrollbar() {
    var remainder = scrollContent.width() - scrollPane.width();
    var proportion = remainder / scrollContent.width();
    var handleSize = scrollPane.width() - (proportion * scrollPane.width());
    scrollbar.find(".ui-slider-handle").css({
      width: handleSize,
      "margin-left": -handleSize / 2
    });
    handleHelper.width("").width(scrollbar.width() - handleSize);
  }

  // Reset slider value based on scroll content position
  function resetValue() {
    var remainder = scrollPane.width() - scrollContent.width();
    var leftVal = scrollContent.css("margin-left") === "auto" ? 0 :
parseInt(scrollContent.css("margin-left"));
var percentage = Math.round(leftVal / remainder * 100);
scrollbar.slider("value", percentage);
}

// If the slider is at 100% and the window enlarges, display the content
function reflowContent() {
    var showing = scrollContent.width() + parseInt(scrollContent.css("margin-left"), 10);
    var gap = scrollPane.width() - showing;
    if (gap > 0) {
      scrollContent.css("margin-left", parseInt(scrollContent.css("margin-left"), 10) + gap);
    }
}

// Change the handle position when resizing the window
$(window).resize(function() {
  resetValue();
  sizeScrollbar();
  reflowContent();
});
// Initialize the scrollbar size
setTimeout(sizeScrollbar, 10); // Safari timeout
});
</script>
</head>
<body>

<div class="scroll-pane ui-widget ui-widget-header ui-corner-all">
  <div class="scroll-content">
    <div class="scroll-content-item ui-widget-header">1</div>
    <div class="scroll-content-item ui-widget-header">2</div>
    <div class="scroll-content-item ui-widget-header">3</div>
    <div class="scroll-content-item ui-widget-header">4</div>
    <div class="scroll-content-item ui-widget-header">5</div>
    <div class="scroll-content-item ui-widget-header">6</div>
    <div class="scroll-content-item ui-widget-header">7</div>
    <div class="scroll-content-item ui-widget-header">8</div>
    <div class="scroll-content-item ui-widget-header">9</div>
    <div class="scroll-content-item ui-widget-header">10</div>
    <div class="scroll-content-item ui-widget-header">11</div>
    <div class="scroll-content-item ui-widget-header">12</div>
    <div class="scroll-content-item ui-widget-header">13</div>
    <div class="scroll-content-item ui-widget-header">14</div>
    <div class="scroll-content-item ui-widget-header">15</div>
    <div class="scroll-content-item ui-widget-header">16</div>
    <div class="scroll-content-item ui-widget-header">17</div>
    <div class="scroll-content-item ui-widget-header">18</div>
    <div class="scroll-content-item ui-widget-header">19</div>
<div class="scroll-content-item ui-widget-header">20</div>
</div>
<div class="scroll-bar-wrap ui-widget-content ui-corner-bottom">
  <div class="scroll-bar"></div>
</div>
</div>

</body>
</html>

View Demo

Step Alignment

Set the increment of the slider values by setting the step option to an integer, typically a divisor of the slider's maximum value. The default increment is 1.

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>jQuery UI Slider - Step Alignment</title>
  <link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
  <script src="//code.jquery.com/jquery-1.9.1.js"></script>
  <script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
  <link rel="stylesheet" href="http://jqueryui.com/resources/demos/style.css">
  <script>
  $(function() {
    $("#slider").slider({
      value: 100,
      min: 0,
      max: 500,
      step: 50,
      slide: function(event, ui) {
        $("#amount").val("$" + ui.value);
      }
    });
    $("#amount").val("$" + $("#slider").slider("value"));
  });
  </script>
</head>
<body>

<p>
  <label for="amount">Donation Amount ($50 increments):</label>
  <input type="text" id="amount" style="border:0; color:#f6931f; font-weight:bold;">
</p>

<div id="slider"></div>

</body>
</html>

View Demo

Vertical Range Slider

Change the orientation of the range slider to vertical. Assign a height value using .height() or set the height via CSS, and set the orientation option to "vertical".

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>jQuery UI Slider - Vertical Range Slider</title>
  <link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
  <script src="//code.jquery.com/jquery-1.9.1.js"></script>
  <script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
  <link rel="stylesheet" href="http://jqueryui.com/resources/demos/style.css">
  <script>
  $(function() {
    $("#slider-range").slider({
      orientation: "vertical",
      range: true,
      values: [17, 67],
      slide: function(event, ui) {
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>jQuery UI Slider - Vertical Range Slider</title>
  <link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
  <script src="//code.jquery.com/jquery-1.9.1.js"></script>
  <script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
  <link rel="stylesheet" href="http://jqueryui.com/resources/demos/style.css">
  <script>
  $(function() {
    $( "#slider-range" ).slider({
      orientation: "vertical",
      range: true,
      values: [ 17, 67 ],
      slide: function( event, ui ) {
        $( "#amount" ).val( "$" + ui.values[ 0 ] + " - $" + ui.values[ 1 ] );
      }
    });
    $( "#amount" ).val( "$" + $( "#slider-range" ).slider( "values", 0 ) +
      " - $" + $( "#slider-range" ).slider( "values", 1 ) );
  });
  </script>
</head>
<body>

<p>
  <label for="amount">Sales Target (Million):</label>
  <input type="text" id="amount" style="border:0; color:#f6931f; font-weight:bold;">
</p>

<div id="slider-range" style="height:250px;"></div>

</body>
</html>

View Demo

Vertical Slider

Change the orientation of the slider to vertical. Assign a height value via .height(), or use CSS to set the height, and set the orientation option to "vertical".

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>jQuery UI Slider - Vertical Slider</title>
  <link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
  <script src="//code.jquery.com/jquery-1.9.1.js"></script>
  <script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
  <link rel="stylesheet" href="http://jqueryui.com/resources/demos/style.css">
  <script>
  $(function() {
    $( "#slider-vertical" ).slider({
      orientation: "vertical",
      range: "min",
      min: 0,
      max: 100,
      value: 60,
      slide: function( event, ui ) {
        $( "#amount" ).val( ui.value );
      }
    });
    $( "#amount" ).val( $( "#slider-vertical" ).slider( "value" ) );
  });
  </script>
</head>
<body>

<p>
  <label for="amount">Volume:</label>
  <input type="text" id="amount" style="border:0; color:#f6931f; font-weight:bold;">
</p>

<div id="slider-vertical" style="height:200px;"></div>

</body>
</html>

View Demo

❮ Api Datepicker Api Focus ❯