Multi Range Slider
Bootstrap 5 Multi Range Slide component
MDBootstrap slider is an interactive component that lets the user swiftly slide through possible values spread over a desired range. .
Note: Read the API tab to find all available options and advanced customization
Basic example
A multi-range-slider slider is gonna autoinit if you add class multi-range-slider to your element. Multi-range Slider starts with max 100 and min 0 values.
        
            
          <div class="multi-range-slider"></div>
        
        
    
        
            
          const basicExample = document.querySelector('.multi-ranges-basic');
          const oneRangeValueBasic = document.querySelector('#multi-ranges-basic-value');
          const basicExampleInit = new mdb.MultiRangeSlider(basicExample, {
            max: 100,
            min: 0,
          });
        
        
    
Basic example with values
You can show values in the another element in dom
        
            
          <div class="multi-ranges-basic"></div>
          <div id="multi-ranges-basic-value" class="mt-3">
            Value:
            <span class="d-flex flex-column">
              <div>First:</div>
              <div>Second:</div>
            </span>
          </div>
        
        
    
        
            
           const basicExample = document.querySelector('.multi-ranges-basic');
           const oneRangeValueBasic = document.querySelector('#multi-ranges-basic-value');
          const basicExampleInit = new mdb.MultiRangeSlider(basicExample, {
            max: 100,
            min: 0,
          });
          basicExample.addEventListener('value.mdb.multiRangeSlider', (e) => {
            const [first, second] = e.values.rounded;
            oneRangeValueBasic.innerHTML = `
              Value: 
              <div class="d-flex flex-column">
                <div>First: ${first}</div>
                <div>Second  ${second}</div>
              </div>
            `;
          });
        
        
    
One range
You can set a one range to your slider with option numberOfRanges or with data-mdb-attr.
        
            
          <div class="multi-ranges-one" data-mdb-number-of-ranges="1"></div>
        
        
    
        
            
          const oneRange = document.querySelector('.multi-ranges-one');
          const oneRangeinit = new mdb.MultiRangeSlider(oneRange, {
            range: {
              max: 300,
              min: 0,
            },
          });
        
        
    
Start Values
You can change start values to ranges with option startValues.
        
            
          <div class="multi-ranges-start-values"></div>
          <div id="multi-ranges-start-values-show" class="mt-3">Value:</div>
        
        
    
        
            
          const startValue = document.querySelector('.multi-ranges-start-values');
          const startValueValues = document.querySelector('#multi-ranges-start-values-show');
          const startValueInit = new mdb.MultiRangeSlider(startValue, {
            startValues: [40, 80],
          });
          startValue.addEventListener('value.mdb.multiRangeSlider', (e) => {
            startValueValues.innerHTML = `
              Value: 
              <span class="d-flex flex-column">
                <div>First: ${e.values.rounded[0]}</div>
                <div>Second  ${e.values.rounded[1]}</div>
              </span>
            `;
          });
        
        
    
Tooltips
You can set tooltip to ranges with option tooltip.
        
            
          <div id="multi-ranges-tooltips" data-mdb-tooltip="true"></div>
        
        
    
        
            
          const tooltips = document.querySelector('#multi-ranges-tooltips');
          const initTooltips = new mdb.MultiRangeSlider(tooltips, { tooltips: true, startValues: [0, 100] });
        
        
    
Step example
You can set a step to the ranges with option step.
        
            
          <div class="multi-range-slider" data-mdb-step="5"></div>
        
        
    
        
            
          const step = document.querySelector('#multi-ranges-step');
          const initStep= new mdb.MultiRangeSlider(step, { step: true });
        
        
    
Multi Range Slider - API
Usage
Via data attributes
        
            
        <div class="multi-range-slider" data-mdb-tooltip="true"></div>
        
        
    
Via JavaScript
        
            
        const basicExample = document.querySelector('.multi-ranges-basic');
        const basicExampleInit = new mdb.MultiRangeSlider(basicExample);
        
        
    
Via jQuery
Note: By default, MDB does not include jQuery and you have to add it to the project on your own.
        
            
        $('.example-class').multiRangeSlider(options);
        
        
    
Options
| Name | Type | Default | Description | 
|---|---|---|---|
| max | number | 100 | Set maximum range of slider | 
| min | number | 0 | Set minimum range of slider | 
| startValues | Array[number] | [0,100] | Set width of range | 
| step | number | 5 | Set step to range | 
| tooltips | boolean | false | Set tooltips to ranges | 
Methods
| Name | Description | Example | 
|---|---|---|
| dispose | Disposes a multi range slider instance | sliderInit.dispose() | 
| getInstance | Static method which allows you to get the multi range slider instance associated to a DOM element. | MultiRangeSlider.getInstance(mySlider) | 
| getOrCreateInstance | Static method which returns the multi range slider instance associated to a DOM element or create a new one in case it wasn't initialized. | MultiRangeSlider.getOrCreateInstance(mySlider) | 
        
            
        var mySlider = document.getElementById('slider');
        var sliderInit = new mdb.MultiRangeSlider(mySlider);
        sliderInit.dispose();
        
        
    
Events
| Name | Description | 
|---|---|
| showPercent.mdb.multiRangeSlider | This event fires when you move your mouse/touch with active range and showing percent instead of values. | 
| value.mdb.multiRangeSlider | This event fires when you move your mouse/touch with active range and showing percent instead of values. | 
| start.mdb.multiRangeSlider | This event fires immediately when the show instance method is called. If caused by a click, the clicked element is available as the relatedTarget property of the event. | 
        
            
        var mySlider = document.getElementById('mySlider1')
        mySlider.addEventListener('showPercent.mdb.multiRangeSlider', function (e) {
          // do something...
        })
        
        
    
Import
MDB UI KIT also works with module bundlers. Use the following code to import this component:
        
            
        import { MultiRangeSlider } from 'mdb-ui-kit';
        
        
    
