Multi Range Slider

Angular 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

Use mdb-multi-range element to render the multi range slider.

<mdb-multi-range></mdb-multi-range>

Basic example with values

You can show values in the another element in dom

Value:
First:
Second:
<mdb-multi-range [(ngModel)]="external"></mdb-multi-range>
<div> Value: </div>
  <div>First: {{external[0]}}</div>
  <div>Second: {{external[1]}}</div>
external = [0, 0];

One range

You can set a one range to your slider with the [numberOfRanges] input.

<mdb-multi-range [numberOfRanges]="1"></mdb-multi-range>

Start Values

You can change start values to ranges with option startValues.

<mdb-multi-range [startValues]="[40, 80]" [(ngModel)]="externalStartValues"></mdb-multi-range>
<div> Value: </div>
  <div>First: {{externalStartValues[0]}}</div>
  <div>Second: {{externalStartValues[1]}}</div>
externalStartValues = {0, 0};

Tooltips

You can set tooltip to ranges with the [tooltip] input.

undefined
undefined
<mdb-multi-range [tooltip]="true"></mdb-multi-range>

Step

You can set a step to the ranges with the [step] input.

<mdb-multi-range [step]="5"></mdb-multi-range>

Multi Range Slider - API


Import

import { MdbMultiRangeModule } from 'mdb-angular-ui-kit/multi-range';
import { FormsModule } from '@angular/forms';

…
@NgModule ({
  ...
  imports: [MdbMultiRangeModule, FormsModule],
  ...
})

Inputs

Name Type Default Description
[max] number 100 Set maximum range of slider
[min] number 0 Set minimum range of slider
[startValues] number[] [0,100] Set width of range
[step] number 5 Set step to range
[tooltip] boolean false Set tooltips to ranges

Outputs

Name Type Description
startDrag EventEmitter<void> This event fires when you start dragging the thumb.
endDrag EventEmitter<void> This event fires when you end dragging the thumb.
changeValue EventEmitter<void> This event fires when any of the Multi range slider values changes.
<mdb-multi-range
  (startDrag)="handleStartDrag()"
></mdb-multi-range>
import { Component } from '@angular/core';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss'],
})
export class AppComponent {
  handleStartDrag() {
    console.log('start drag');
  }
}

CSS variables

// .multi-range-slider
--#{$prefix}multi-range-sliderhand-focus-box-shadow: #{$form-range-thumb-focus-box-shadow};
--#{$prefix}multi-range-slider-horizontal-height: #{$multi-range-slider-horizontal-height};
--#{$prefix}multi-range-hand-width: #{$form-range-thumb-width};
--#{$prefix}multi-range-hand-height: #{$form-range-thumb-height};
--#{$prefix}multi-range-hand-bg: #{$form-range-thumb-bg};
--#{$prefix}multi-range-hand-border-radius: #{$range-thumb-border-radius};
--#{$prefix}multi-range-hand-box-shadow: #{$form-range-thumb-box-shadow};
--#{$prefix}multi-range-hand-transition: #{$form-range-thumb-transition};
--#{$prefix}multi-range-hand-active-bg: #{$form-range-thumb-active-bg};
--#{$prefix}multi-range-track-bg: #{$form-range-track-bg};
--#{$prefix}multi-range-tooltip-transition: #{$multi-range-tooltip-transition};
--#{$prefix}multi-range-tooltip-border-radius: #{$multi-range-tooltip-border-radius};
--#{$prefix}multi-range-tooltip-transform: #{$multi-range-tooltip-transform};
--#{$prefix}multi-range-tooltip-transform-active: #{$multi-range-tooltip-transform-active};
--#{$prefix}multi-range-tooltip-content-size: #{$multi-range-tooltip-content-size};
--#{$prefix}multi-range-tooltip-content-transform: #{$multi-range-tooltip-content-transform};
--#{$prefix}multi-range-tooltip-content-font-size: #{$multi-range-tooltip-content-font-size};
--#{$prefix}multi-range-tooltip-position-top: #{$multi-range-tooltip-position-top};

SCSS variables

$multi-range-slider-horizontal-height: 0.25rem;
$multi-range-tooltip-transition: top 0.2s, transform 0.2s, border-radius 0.2s;
$multi-range-tooltip-border-radius: 50% 50% 50% 0;
$multi-range-tooltip-position-top: -18px;
$multi-range-tooltip-transform: rotate(-45deg) translate(-5px, -4px) scale(0);
$multi-range-tooltip-transform-active: rotate(-45deg) translate(-5px, -4px) scale(1);
$multi-range-tooltip-content-size: 30px;
$multi-range-tooltip-content-transform: rotate(45deg) translateY(25%);
$multi-range-tooltip-content-font-size: 10px;