1.2.0 • Published 5 years ago

snap-slider v1.2.0

Weekly downloads
238
License
MIT
Repository
github
Last release
5 years ago

snap-slider

minified + gzip size

Lightweight, easily customizable slider.

Browser support

IEEdgeFirefoxChromeSafari
None76+68+69+11+ (partial*)

Install

$ npm install snap-slider

Demo

https://ryanwalters.github.io/snap-slider/

Options

Options marked with an asterisk (*) are required

Option NameTypeDefaultDescription
$slider*ElementnoneThe element containing the slides.
$buttonPrevElement<button>Custom previous button.
$buttonNextElement<button>Custom next button.
$trackElement<div>Allows the use of a custom element to be used for the track that contains the slides. Useful, for example, for composing React components.
scrollRationumber1The percentage of the track that should be scrolled. Example: a value of 0.75 will scroll 75% of the width of the container.

Usage

<button class="custom-previous-button">
    <i class="material-icons">keyboard_arrow_left</i>
</button>
<div id="your-slider">
    <img src="//placehold.it/300x300" alt="fancy image" />
    <img src="//placehold.it/300x300" alt="fancy image" />
    <img src="//placehold.it/300x300" alt="fancy image" />
    <img src="//placehold.it/300x300" alt="fancy image" />
    <img src="//placehold.it/300x300" alt="fancy image" />
</div>
<button class="custom-next-button">
    <i class="material-icons">keyboard_arrow_right</i>
</button>
import { SnapSlider } from 'snap-slider';
import 'snap-slider/src/snap-slider.css';

const { $track } = new SnapSlider({ 
  $slider: document.querySelector('#your-slider'),
  $buttonPrev: document.querySelector('.custom-previous-button'), // Optional
  $buttonNext: document.querySelector('.custom-next-button'), // Optional
  scrollRatio: 0.5, // Optional
});

// $track is an HTMLElement, so you have access to all the standard JS methods and properties 

// Examples:
// Append 

$track.append(document.querySelector('.new-slide')); // Single slide
$track.append(...document.querySelectorAll('.more-slides')); // Multiple slides

// Prepend

$track.prepend(document.querySelector('.new-slide')); // Single slide
$track.prepend(...document.querySelectorAll('.more-slides')); // Multiple slides

The children of #your-slider can be anything (e.g. div, picture, whatever), not only img elements.

*Partial Safari support refers to the scrollBy method's ScrollToOptions parameter not being supported. This prevents the smooth scrolling behavior. The smoothscroll-polyfill can be used until Safari has proper support.

1.2.0

5 years ago

1.1.1

5 years ago

1.1.2

5 years ago

1.1.0

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago

0.3.4

5 years ago

0.3.3

5 years ago

0.3.2

5 years ago

0.3.1

5 years ago

0.3.0

5 years ago

0.2.3

5 years ago

0.2.2

5 years ago

0.2.1

5 years ago

0.2.0

5 years ago

0.1.1

6 years ago

0.1.0

6 years ago