-
Notifications
You must be signed in to change notification settings - Fork 97
/
Copy pathcarousel.min.js
4 lines (4 loc) · 1.45 KB
/
carousel.min.js
1
2
3
4
var Carousel=function(a){this.element=a;this.init()};Carousel.prototype.init=function(){var a=this;this.carouselContent=this.element.querySelector(".carousel-content");this.items=this.carouselContent.querySelectorAll(".carousel-item");this.element.querySelector(".carousel-nav-left").addEventListener("click",function(b){a.prevSlide()},!1);this.element.querySelector(".carousel-nav-right").addEventListener("click",function(b){a.nextSlide()},!1);this.setOrder()};
Carousel.prototype.setOrder=function(a){"previous"===a?a=1:"next"===a&&(a=-1);var b=this.items.length;b&&this.items.forEach(function(c,e){var d;(d=c.style.order?(parseInt(c.style.order,10)+a)%b:(e+2)%b)&&2===d?(c.style["z-index"]="1",c.classList.add("is-active")):(c.style["z-index"]="0",c.classList.remove("is-active"));c.style.order=d?d:b})};
Carousel.prototype.prevSlide=function(a){var b=this;this.carouselContent.classList.add("carousel-reverse");this.carouselContent.classList.toggle("carousel-animate");this.setOrder("previous");setTimeout(function(){b.carouselContent.classList.toggle("carousel-animate")},50)};
Carousel.prototype.nextSlide=function(a){var b=this;this.carouselContent.classList.remove("carousel-reverse");this.carouselContent.classList.toggle("carousel-animate");this.setOrder("next");setTimeout(function(){b.carouselContent.classList.toggle("carousel-animate")},50)};window.onload=function(){var a=document.querySelectorAll(".carousel, .hero-carousel");a&&a.forEach(function(a){new Carousel(a)})};