Friday, 10 January, 2020 UTC


Summary

It's kind of amazing how far HTML and CSS will take you when building a carousel/slideshow.
  1. Setting some boxes in a horizontal row with flexbox is easy.
  2. Showing only one box at a time with overflow and making it swipable with -webkit-overflow-scrolling is easy.
  3. You can make the "slides" line up nicely with scroll-snap-type.
  4. A couple of #jump-links is all you need to make navigation for it, which you can make all nice and smooth with scroll-behavior.
See the Pen
Real Simple Slider by Chris Coyier (@chriscoyier)
on CodePen.
Christian Schaefer has taken it a little further with next and previous buttons, plus an auto-play feature that stops playing once interaction starts.
See the Pen
A CSS-only Carousel Slider by Christian Schaefer (@Schepp)
on CodePen.
About that auto-play thing — it's a bonafide CSS trick:
  1. First I slowly offset the scroll snap points to the right, making the scroll area follow along due to being snapped to them.
  2. After having scrolled the width of a whole slide, I deactivate the snapping. The scroll area is now untied from the scroll snap points.
  3. Now I let the scroll snap points jump back to their initial positions without them "snap-dragging" the scroll area back with them
  4. Then I re-engage the snapping which now lets the scroll area snap to a different snap point 🤯
Cool.
JavaScript-powered slideshows (e.g. with Flickty) can be real nice, too. There is just something neat about getting it done with so little code.
See the Pen
Flickity - wrapAround by Dave DeSandro (@desandro)
on CodePen.
The post CSS-Only Carousel appeared first on CSS-Tricks.