javascript - Skapa ett angular material-sliderintervall med anpassade steg


Jag vill skapa en mat-slider med egna steg på 0,25, 0,5, 1, 2, 3

Vilket värde kan jag ge mitt increment? koden nedan

<mat-slider #slider  [min]="0.25" [max]="3" [step]="[increment]" (input)="onInputChange($event)" </mat-slider>

this.increment = ???

Svar #1

step's typ är nummer så jag är rädd att du inte kan nå ditt mål direkt.

Men en indirekt lösning kan vara så här: vi vill ha en mat-slider vars output (finalValue:number) kan vara 0,25 eller 0,5 eller ... .

1- Du har 5 steg. Spara stegen i en array som steps=[0.25, 0.5, 1, 2, 3]

2- Använd mat-slide som vanligt för att ha 5 steg. Till exempel sätt min=0, max=4, step=1

3- I onInputChange() kan du se det nya värdet av mat-slide. Låt oss kalla det stepIndex, vilket är ett heltal mellan 0 och 4.

4- Använd stepIndex för att ta reda på det slutgiltiga värdet. En enkel kartläggning.

Du kan se allt detta här:

https://stackblitz.com/edit/angular-p2iz4u?file=src/app/slider-overview-example.ts

Relaterade artiklar