4.6.0 • Published 4 years ago

@morsedigital/vanilla-carousel v4.6.0

Weekly downloads
19
License
MIT
Repository
github
Last release
4 years ago

vanilla-carousel

Synopsis

An image carousel written in vanilla JavaScript.

Installation

yarn @morsedigital/vanilla-carousel

or

npm install @morsedigital/vanilla-carousel

Example Instantiation

Firstly set up the html.erb for the carousel

<div
  class="carousel <%=css_variation%>"
  id="main-carousel"
  data-autoplay="5"
  data-carousel="true"
  data-arrows="false"
  data-items="carousel__item"
  data-control="carousel-controls"
  data-holder="carousel__inner"
  data-play-btn="false"
  data-svg="assets/carousel.svg"
  aria-labelledby="carousel-heading"
>
  <h3 id="carousel-heading" class="hidden">Promo Carousel</h3>
  <div class="carousel__inner">
    <div class="carousel__item">
      <div
        class="carousel__image-container"
        style="background-image:url('http://www.fillmurray.com/1280/391')"
        data-mobile="http://www.fillmurray.com/480/360"
        data-tablet="http://www.fillmurray.com/768/432"
        data-desktop="http://www.fillmurray.com/1280/391"
      >
        <div class="carousel-overlay">
          <h2>Bill Murray</h2>
          <h3>Lorem ipsum dolor sit amet</h3>
        </div>
      </div>
    </div>
  </div>
  <fieldset
    aria-label="carousel buttons"
    class="carousel__nav"
    id="carousel-controls"
  ></fieldset>
</div>
import Carousel from "@morsedigital/vanilla-carousel";
import "@morsedigital/vanilla-carousel/carousel.scss";
import "@morsedigital/vanilla-carousel/assets/carousel.svg";

// No need to add guard check unless you dynamically load module
(() => {
  Carousel();
})();

Or dynamically load modules

import "@morsedigital/vanilla-carousel/carousel.scss";
import "@morsedigital/vanilla-carousel/assets/carousel.svg";

const carouselElements = [...document.querySelectorAll('[data-carousel]')];

if (carouselElements.length > 0) {
  import(/* webpackChunkName: "vanilla-carousel" */ '@morsedigital/vanilla-carousel').then(
    ({ default: Carousel }) => {
      Carousel();
    }
  );

Options

Options are added via data attributes

OptionDataAttributeDefaultExplanation
itemsdata-itemscarousel__itemcss class name for each carousel item
autoplaydata-autoplayfalseboolean to toggle auto play (rotation) of carousel
arrowsdata-arrowstrueboolean to add left/right arrows
holderdata-holdercarousel__innerthe class of the inner wrapper that all carousel items sits in
controldata-controlcarousel-controlsclass of the controller block
naturalScrolldata-natural-scrolltruewhether animation will apply a natural scroll effect to movement
playBtndata-play-btntrueshow a play pause button
svgdata-svgnullpath to svg sprite of control icons

Running tests

yarn test
4.6.0

4 years ago

4.4.4

5 years ago

4.4.1

5 years ago

4.5.0

5 years ago

4.4.0

5 years ago

4.3.6

5 years ago

4.3.5

5 years ago

4.3.2

5 years ago

4.3.1

5 years ago

4.3.0

5 years ago

4.2.0

5 years ago

4.1.3

5 years ago

4.1.2

5 years ago

4.1.1

5 years ago

4.1.0

5 years ago

4.0.6

5 years ago

4.0.5

5 years ago

4.0.4

6 years ago

4.0.3

6 years ago

4.0.2

6 years ago

4.0.1

6 years ago

4.0.0

6 years ago

3.0.4

6 years ago

3.0.3

6 years ago

3.0.2

6 years ago

3.0.1

6 years ago

3.0.0

6 years ago

2.3.0

7 years ago

2.2.1

7 years ago

2.2.0

7 years ago

2.1.2

7 years ago

2.1.1

7 years ago

2.1.0

7 years ago

2.0.2

7 years ago

2.0.1

7 years ago

2.0.0

7 years ago

1.2.0

7 years ago

1.1.2

7 years ago

1.1.1

7 years ago

1.1.0

7 years ago

1.0.9

7 years ago

1.0.5

7 years ago

1.0.4

7 years ago

1.0.3

8 years ago