Notizen zu umgekehrt scrollenden Spalten mit CSS Scroll-Timeline

Avatar of Chris Coyier
Chris Coyier am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

Lassen Sie mich das im Schnelldurchlauf machen

Showing three columns of photos of actresses demonstrating the CSS scroll-timeline effect. The first and their columns scroll up and down together. The second columns scrolls the opposite direction.

CSS Scroll-Timeline mit prefers-reduced-motion

Das Einzige, was ich hinzufügen würde, ist etwas, um prefers-reduced-motion zu berücksichtigen, da ich mir vorstellen kann, dass diese Art von Scroll-Bewegung jemanden mit Reisekrankheit beeinträchtigen könnte. Um das zu tun, könnten Sie Tests in derselben Zeile kombinieren, in der der Support-Test in JavaScript durchgeführt wird

if (
    !CSS.supports("animation-timeline: foo") && 
    !window.matchMedia('(prefers-reduced-motion: reduce)').matches
   ) {
     // Do fancy stuff
}

Ich bin mir nicht 100% sicher, ob es am besten ist, auf no-preference zu testen oder das Gegenteil von reduce. In jedem Fall besteht der Trick in CSS darin, alles, was Sie mit @scroll-timeline und animation-timeline tun werden, in einen @supports-Test zu packen (falls Sie andernfalls etwas anderes tun möchten) und dann *das* in einen Präferenztest zu verpacken

@media (prefers-reduced-motion: no-preference) {

    @supports (animation-timeline: works) {

      /* Do fancy stuff */

    }

}

Hier ist eine Demo davon, mit der gesamten Anerkennung an Bramus, dass er es ermöglicht hat.

Oh und weißt du was? Das CSS wird schöner, sollte @when als Funktion landen

@when supports(animation-timeline: works) and media(prefers-reduced-motion: no-preference) {

} @else {

}