Hopp til hovedinnhold
Meny

lmfaole.party / designsystem / komponenter / Intervallglider

  • Forside
  • Turer
  • Økonomi
  • Slides
  • <lm-range-slider> – Intervallglider / Range slider

    Om komponenten

    Formål

    Lar brukeren velge et tallintervall med to hendler langs ett spor - f.eks. "vis transaksjoner mellom 200 kr og 2000 kr", eller et datointervall representert som tall. Implementerer ARIA APG sitt Slider (Multi-Thumb)-mønster: hver hendel er role="slider" med egne aria-value*-attributter, styrt med piltaster, Home/End og pekerdrag.

    Egner seg for

    • Å filtrere et datasett på et tallintervall (beløp, avstand, dato representert numerisk) med to grenser.
    • Dashboards/filterpaneler der min- og maks-grense skal justeres visuelt, ikke i to separate tekstfelt.

    Egner seg ikke for

    • Å velge én enkelt verdi - bruk native <input type="range"> i stedet.
    • Presis, eksakt tallinntasting - kombiner gjerne med to <input type="number">-felt ved siden av for tastaturbrukere som vil skrive tall direkte.

    Bruk

    <script type="module" src="/designsystem/komponenter/skjema/range-slider/range-slider.js"></script>
    
    <lm-range-slider min="0" maks="5000" steg="50" verdi-min="200" verdi-maks="2000"></lm-range-slider>

    Prøv selv

    Rediger koden under - resultatet oppdateres live.

    Attributter

    Attributt Type Standard Beskrivelse
    minnumber0Attributt/property. Laveste mulige verdi.
    maksnumber100Attributt/property. Høyeste mulige verdi.
    stegnumber1Attributt/property. Avstand mellom gyldige verdier.
    verdi-minnumberminAttributt/property. Gjeldende verdi for minimum-hendelen. Kan aldri overstige verdi-maks.
    verdi-maksnumbermaksAttributt/property. Gjeldende verdi for maksimum-hendelen. Kan aldri underskride verdi-min.

    Events

    Event Type Beskrivelse
    range-slider:endringCustomEventDispatches når en av hendlene flyttes. detail inneholder verdiMin og verdiMaks.

    Parts

    Part Beskrivelse
    sporHele sporet gliderne beveger seg langs.
    fyltDen fylte delen av sporet mellom de to hendlene.
    hendel-minMinimum-hendelen.
    hendel-maksMaksimum-hendelen.

    Styling med ::part()

    Hver part over kan restyles direkte fra et vanlig, ytre stilark - uten å måtte endre selve komponenten eller duplisere den:

    lm-range-slider::part(spor) {
        /* egne stiler for "Hele sporet gliderne beveger seg langs." */
    }
    
    lm-range-slider::part(fylt) {
        /* egne stiler for "Den fylte delen av sporet mellom de to hendlene." */
    }
    
    lm-range-slider::part(hendel-min) {
        /* egne stiler for "Minimum-hendelen." */
    }
    
    lm-range-slider::part(hendel-maks) {
        /* egne stiler for "Maksimum-hendelen." */
    }

    Tilgjengelighet

    Hver hendel er et eget role="slider"-element med aria-valuemin/aria-valuemax/aria-valuenow og et beskrivende aria-label ("Minimum"/"Maksimum"). Piltaster (høyre/opp øker, venstre/ned reduserer) med steg-størrelse; Home/End hopper til komponentens min/maks. Hver hendel er uavhengig tastaturnåbar (tabindex="0") og kan aldri flyttes forbi den andre hendelen.

    • Begge hendlene er role="slider" med aria-valuemin/aria-valuemax/aria-valuenow som alltid oppdateres synkront med den visuelle posisjonen.
    • Hver hendel har et fast aria-label ("Minimum"/"Maksimum") som identifiserer hvilken grense den styrer.
    • Piltaster flytter kun én hendel om gangen, med steg-størrelse; Home/End hopper til ytterkantene (respekterer fortsatt at min-hendelen aldri kan overstige maks-hendelen og omvendt).

    Detaljer

    • Klikk direkte i sporet flytter automatisk den nærmeste av de to hendlene til klikkpunktet, i stedet for å kreve at brukeren treffer selve hendelen.
    • verdi-min/verdi-maks klemmes alltid til gyldig område ved setting - de kan aldri krysse hverandre eller gå utenfor min/maks.

    Referanser

    Se også:

    Avhengigheter: Ingen