ESL Carousel Wheel

The esl-carousel-wheel is a custom attribute (mixin) for ESLCarousel that provides wheel based navigation for the carousel. It is a carousel plugin, so it should be added directly to the esl-carousel element. Using esl-carousel-wheel plugin you can handle wheel events to navigate the carousel in different ways.

Configuration

As the esl-carousel-wheel is a plugin, it utilizes the ESLCarousel's plugin configuration system. That means the only source of configuration is the esl-carousel-wheel attribute value. It supports ESLMedia query syntax to provide different configurations for different media conditions (and it could be declared with a tuple syntax according to media attribute).

The configuration properties of the esl-carousel-wheel are the following:

type (primary property, could be declared as the only value in the attribute)

Declares the type of navigation to execute on the wheel event. Could be one of the following:

direction (optional)

Restricts wheel direction. Values:

ignore (optional)

The selector string to ignore elements for the wheel event. Default is [contenteditable].

preventDefault (optional)

Prevent default wheel event behavior when the event has been handled. Default is true.

Usage Examples

<!-- Basic wheel navigation by slide -->
<esl-carousel esl-carousel-wheel>
  <!-- carousel content -->
</esl-carousel>

<!-- Navigate by group -->
<esl-carousel esl-carousel-wheel="group">
  <!-- carousel content -->
</esl-carousel>

<!-- Move by wheel delta -->
<esl-carousel esl-carousel-wheel="move">
  <!-- carousel content -->
</esl-carousel>

<!-- Restricts wheel navigation for desktop only -->
<esl-carousel esl-carousel-wheel="slide | @desktop => none">
  <!-- carousel content -->
</esl-carousel>

<!-- Custom configuration -->
<esl-carousel esl-carousel-wheel="{type: 'slide', ignore: '[contenteditable], .no-wheel'}">
  <!-- carousel content -->
</esl-carousel>