Snake
Vanilla JS responsive slider
Separate settings per breakpoint.
CSS3 transforms. Arrows and dots.
Swipe and desktop mouse dragging.
Autoplay and infinite looping.
Slider syncing.
Getting Started
Move the /snake folder into your project.
Add snake.css, snake-theme.css and snake.js in your <head/>
<link rel="stylesheet" href="snake/snake.css">
<link rel="stylesheet" href="snake/snake-theme.css">
<script src="snake/snake.js"></script>
Set up your HTML markup
<div class="some-class">
<div>slide 1</div>
<div>slide 2</div>
<div>slide 3</div>
</div>
Initialize your slider in a script tag
new Snake('.some-class');
Single Item
new Snake('.single-item');
Multiple Items
new Snake('.multiple-items', {
speed: 300,
slidesToShow: 3,
slidesToScroll: 2,
});
Responsive Display
new Snake('.responsive', {
mobileFirst: true,
swipe: true,
speed: 300,
responsive: [
{
breakpoint: 400,
settings: {
initialSlide: 2,
slidesToScroll: 1,
slidesToShow: 2,
}
},
{
breakpoint: 700,
settings: {
initialSlide: 1,
slidesToScroll: 2,
slidesToShow: 3,
}
},
{
breakpoint: 1000,
settings: {
initialSlide: 0,
slidesToScroll: 3,
slidesToShow: 4,
}
},
],
});
Arrows & Dots
new Snake('.arrows-and-dots', {
infinite: false,
speed: 300,
dots: false,
arrows: false,
mobileFirst: true,
responsive: [
{
breakpoint: 768,
settings: {
dots: true,
arrows: true,
}
}
]
});
Autoplay
new Snake('.autoplay', {
speed: 300,
slidesToShow: 3,
slidesToScroll: 2,
autoplay: true,
autoplaySpeed: 5000,
});
Center Mode
new Snake('.center-mode', {
speed: 300,
slidesToShow: 3,
slidesToScroll: 1,
centerMode: true,
centerPadding: '60px',
responsive: [
{
breakpoint: 700,
settings: {
slidesToShow: 1,
slidesToScroll: 1,
}
}
]
});
Adaptive Height
new Snake('.adaptive-height', {
speed: 300,
slidesToShow: 3,
slidesToScroll: 2,
adaptiveHeight: true,
});
Slider Syncing
new Snake('.slider', {
draggable: false,
dots: false,
asNavFor: '.nav',
speed: 300,
});
new Snake('.nav', {
mobileFirst: true,
swipe: true,
speed: 300,
asNavFor: '.slider',
centerMode: true,
centerPadding: '60px',
responsive: [
{
breakpoint: 700,
settings: {
initialSlide: 0,
slidesToScroll: 1,
slidesToShow: 3,
}
},
],
});