Home

Awesome

Vanilla JavaScript Carousel

Build Status Coverage Status Dependencies

Tiny (1Kb gzipped) JavaScript carousel with all the features most of us will ever need.

Vanilla JavaScript Carousel

— Inspired by the blazing fast, lightweight, cross-platform and crazy popular Vanilla JS framework.

Demo

CAROUSEL

Installation

  1. Via NPM:

    npm install --save vanilla-js-carousel
    

    or in case you love shortcuts:

    npm i --S vanilla-js-carousel
    
  2. Old school:

    <script src="dist/vanilla-js-carousel.min.js"></script>
    

Usage

  1. Include the CSS and feel free to edit it or write your own:

    <link rel="stylesheet" href="dist/vanilla-js-carousel.css" />
    
  2. Write some markup:

    <div class="js-Carousel" id="carousel">
        <ul>
            <li><img src="image-1.jpg" alt=""></li>
            <li><img src="image-2.jpg" alt=""></li>
            <li><img src="image-3.jpg" alt=""></li>
        </ul>
    </div>
    
  3. If you installed via NPM:

    const Carousel = require("vanilla-js-carousel");
    
  4. Initialize the carousel:

    var carousel = new Carousel({
        elem: 'carousel',    // id of the carousel container
        autoplay: false,     // starts the rotation automatically
        infinite: true,      // enables the infinite mode
        interval: 1500,      // interval between slide changes
        initial: 0,          // slide to start with
        dots: true,          // show navigation dots
        arrows: true,        // show navigation arrows
        buttons: false,      // hide play/stop buttons,
        btnStopText: 'Pause' // STOP button text
    });
    
    // Show slide number 3 (Numeration of slides starts at 0)
    carousel.show(2);
    
    // Move to the next slide
    carousel.next();
    

Options

Settings

OptionTypeDefaultDescription
elemstringcarouselThe id of the carousel container in the HTML markup
intervalint3000Auto play interval in milliseconds
initialint0Index of the slide to start on
autoplaybooleanfalseEnables auto play of slides
infinitebooleanfalseEnables infinite mode
dotsbooleantrueDisplay navigation dots
arrowsbooleantrueDisplay navigation arrows (<prev>/<next>)
buttonsbooleantrueDisplay navigation buttons (<stop>/<play>)

Button titles

OptionTypeDefaultDescription
btnPlayTextstringPlayText for <play> button
btnStopTextstringStopText for <stop> button
arrPrevTextstring&lsaquo;Text for <prev> arrow
arrNextTextstring&rsaquo;Text for <next> arrow

Methods

MethodArgumentDescription
.show(index)index: intMoves the carousel to slide by index
.live()Returns the current slide's index
.prev()Triggers previous slide
.next()Triggers next slide
.play()Starts the autoplay
.stop()Stops the autoplay

Running the tests

npm test

Browser support and dependencies

BrowserSupportDependencies
Chromeyes-
Firefoxyes-
Safariyes-
Operayes-
IEyes*Polyfill for .classList in IE9

* IE9 and up

Versioning

This project uses SemVer for versioning. For the versions available, see the tags on this repository.

License

Anyone is free to copy, modify, publish, use, compile, sell, or distribute this software, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means.

See Unlicense for full details.

Related