CSS-tools

Gratis CSS progress() Functiecalculator

Bereken CSS progress()-functiewaarden voor scroll-gestuurde animaties en waardetoewijzing.

Tool laden...

Wat is CSS progress() Functiecalculator?

De CSS progress()-functie is een wiskundige mappingfunctie (Chrome 138+) die een invoerwaarde uit een numeriek bereik omzet in een voortgangswaarde tussen 0 en 1. Bijvoorbeeld: progress(scroll-position from 0 to 500) retourneert 0 wanneer de scrollpositie 0 is, 1 bij 500 en 0,5 bij 250. Deze voortgangswaarde kan elk numeriek CSS-attribuut aansturen, waardoor complexe calc()-ketens voor scroll-gerelateerde effecten, viewport-relatieve formaatbepaling en interpolatie van eigen attributen overbodig worden.

Snel antwoord

Gebruik CSS progress(input from min to max) om een numerieke waarde om te zetten naar een 0-1 voortgangsbereik. Stuur opacity, scale, transform, color-mix percentages of elk getal-accepterend CSS-attribuut aan op basis van scrollpositie, viewport-afmetingen of eigen attributen. Chrome 138+. Wikkel in clamp(0, ..., 1) om de uitvoer te begrenzen.

Last updated: 2026-05-30

Beperkingen

  • progress() vereist Chrome 138+. Firefox, Safari en oudere Chrome-versies ondersteunen het niet. Gebruik scroll-driven animation keyframes of JavaScript-gebaseerde scroll-luisteraars als fallback voor cross-browser-ondersteuning.
  • De functie werkt alleen met numerieke CSS-attributen. Het kan niet direct kleurstops, verloophoeken of shape-functies aansturen. Combineer voor kleurovergangen progress() met color-mix() met de voortgangswaarde als mengpercentage.
  • scroll-position in progress() meet standaard de documentscrollpositie, niet die van een element. Gebruik self-scroll-position voor een specifiek scrollbaar element, maar zorg ervoor dat het element scrollbaar is en een gedefinieerd scrollbereik heeft.

Sources:MDN Web Docs · W3C Specifications · jquery.app on GitHub

Zo gebruik je deze tool

  1. Voer de invoerbron en het bereik in —kies uit scroll-position, viewport width/height, viewport inline/block size of een eigen CSS-attribuut met de minimum- en maximumwaarden.
  2. Stel het doel-CSS-attribuut in dat u wilt aansturen en de waarde bij voortgang 0 en voortgang 1 —bijvoorbeeld opacity van 0 naar 1, of scale van 0,5 naar 1,5.
  3. Schakel optioneel clamp()-omhulling in om het resultaat binnen het uitvoerbereik te houden, zelfs wanneer de invoer het gedefinieerde bereik overschrijdt.
  4. Kopieer de gegenereerde CSS en voeg deze toe aan uw stylesheet. De uitvoer bevat zowel de progress()-regel als de volledige attribuutdeclaratie.

Waarvoor je het kunt gebruiken

  • Stuur de dekking van een sticky header van volledig transparant naar dekkend naarmate de gebruiker van 0 naar 200 pixels naar beneden scrollt.
  • Schaal een heldenafbeelding van 1 naar 1,2 naarmate de viewportbreedte groeit van 320px naar 1920px, voor een subtiel zoomeffect op bredere schermen.
  • Stuur een color-mix()-mengpercentage aan om van de ene kleur naar de andere over te gaan op basis van hoe ver de gebruiker door een sectie heeft gescrolld.

Gebruik

Praktische voorbeelden

Voorbeeld

Inschuifeffect bij scrollen met progress()

Een heldensectie moet inschuiven terwijl de gebruiker de eerste 300 pixels scrollt. Gebruik progress(scroll-position from 0 to 300) gekoppeld aan opacity: het element is volledig transparant bovenaan de pagina (progress=0) en volledig dekkend na 300px scrollen (progress=1). Geen IntersectionObserver of scroll-eventlistener nodig.

Voorbeeld

Responsieve kaartschaling per viewport

Een kaartraster moet elke kaart schalen van 0,9 bij 320px viewportbreedte naar 1,1 bij 1440px. Gebruik progress(100vw from 320 to 1440) als invoer met scale als doelattribuut. De kaarten worden subtiel groter naarmate de viewport breder wordt, voor een responsief raster zonder media queries.

Veelgemaakte fouten

  • Progress() gebruiken zonder te beseffen dat het een ruwe 0-1-waarde retourneert —de meeste attributen hebben een extra calc() of schaling nodig om de voortgang om te zetten naar het gewenste uitvoerbereik, maar de tool verzorgt deze mapping voor u.
  • Vergeten dat scroll-position standaard relatief is aan de documentscrollpositie —gebruik voor het scrollbare element progress(self-scroll-position from 0 to N) in plaats daarvan.
  • Aannemen dat progress() in alle CSS-attributen werkt —het werkt in elk attribuut dat een getal of percentage accepteert, maar niet direct in kleurfuncties zoals rgb() (gebruik in plaats daarvan color-mix()).

Verificatie

  1. Inspecteer het element in DevTools en controleer of de berekende waarde van het doelattribuut overeenkomt met de verwachte waarde bij bekende invoerposities (bijv. scroll precies 200px en controleer of opacity 0,5 is voor een 0-tot-400-bereik).
  2. Test de randgevallen: controleer de attribuutwaarde bij de minimum- en maximumgrenzen van het invoerbereik en test met een invoerwaarde buiten het bereik om het clamp()-gedrag te bevestigen indien omhulling is ingeschakeld.

FAQ

Vragen over CSS progress() Functiecalculator

Hoe verschilt progress() van scroll-driven animation timelines met view-timeline?

progress() is een zuivere wiskundige functie die het ene numerieke bereik naar 0-1 mapt —het heeft geen koppeling met animatietimelines, keyframes of animation-range. Gebruik progress() voor declaratieve waardemapping in elk CSS-attribuut zonder een scroll-timeline aan te maken. Gebruik view-timeline en animation-range wanneer u volledige keyframe-gebaseerde scroll-driven animaties met meerdere stappen, easing en richtingscontrole nodig hebt.

Wat gebeurt er wanneer de invoerwaarde buiten het gedefinieerde bereik valt?

progress() retourneert waarden buiten 0-1 wanneer de invoer buiten het from-to-bereik ligt. Bijvoorbeeld: progress(x from 0 to 100) retourneert 1,5 wanneer x=150. Wikkel het resultaat in clamp(0, ..., 1) om de uitvoer te begrenzen. Deze tool bevat een optionele clamp()-omhulling om dit automatisch af te handelen.

Kan progress() verwijzen naar eigen attributen als invoer?

Ja. U kunt elk CSS-eigen attribuut als invoerwaarde gebruiken, zoals progress(--scroll-offset from 0 to 500). Dit is handig wanneer u een waarde wilt aansturen op basis van JavaScript-ingestelde eigen attributen of wanneer u meerdere progress()-berekeningen aan elkaar koppelt via tussenliggende eigen attributen.

Gerelateerde tools

Meer css-tools

Css

CSS Carousel Generator

Generate native CSS carousel markup with scroll-snap, scroll buttons, scroll markers, and accessible list structure. No JavaScript required.

Open tool

Probeer ook

Probeer ook

Html

CSP Hash Generator

Genereer CSP-hashwaarden voor inline scripts en styles. Hash exacte code met SHA-256, SHA-384 of SHA-512.

Open tool