1.1.22 • Published 12 months ago

@stasies/js-carousel v1.1.22

Weekly downloads
-
License
MIT
Repository
-
Last release
12 months ago

🚀 JS-Carousel Component

A lightweight, customizable, and performant js-carousel. Supports dragging functionality via translateX.

✨ Features

  • Infinite scrolling for seamless transitions
  • Customizable slides using <slide-component>
  • Draggable support (using translateX for smooth motion)
  • Responsive breakpoints for different screen sizes
  • Autoplay support with configurable interval

📦 Installation

npm install @stasies/js-carousel

🚀 Usage

Attributes

AttributeTypeDefaultDescription
autoplayfalse | numberfalsefalse disables autoplay, a number sets autoplay interval in ms
wrapAroundbooleantrueEnables infinite loop
breakpointsobject{0: {slidesToShow: 1, slidesToScroll: 1}}Defines responsive breakpoints where the key is the screen width
gapnumber0Sets gaps between slides (in px)
pauseonhoverbooleantruetrue stops autoplay on hover

Basic Example

<carousel-component
  autoplay="3000"
  wraparound="true"
  gap="8"
  pauseonhover="true"
>
  <slide-component>Slide 1</slide-component>
  <slide-component>Slide 2</slide-component>
  <slide-component>Slide 3</slide-component>
</carousel-component>

JavaScript Usage

const carousel = document.querySelector("carousel-component");
carousel.breakpoints = {
  1600: {
    slidesToShow: 3,
    slidesToScroll: 1,
  },
  0: {
    slidesToShow: 1,
    slidesToScroll: 1,
  },
};
carousel.next(); // switch to the next slide
carousel.prev(); //switch to the previous slide
carousel.jump(index); //jump to the slide with index

Next (React) Example

"use client";
import "@stasies/js-carousel";
import { useEffect, useRef } from "react";

export default function Carousel() {
  const carousel = useRef();

  useEffect(() => {
    carousel.current.breakpoints = {
      1200: {
        slidesToShow: 2,
        slidesToScroll: 1,
      },
      0: {
        slidesToShow: 1,
        slidesToScroll: 1,
      },
    };
  });

  return (
    <carousel-component
      ref={carousel}
      gap={10}
      autoplay={2000}
      wraparound={true}
    >
      <slide-component>slide 1</slide-component>
      <slide-component>slide 2</slide-component>
      <slide-component>slide 3</slide-component>
      <slide-component>slide 4</slide-component>
      <slide-component>slide 5</slide-component>
    </carousel-component>
  );
}

Nuxt (Vue) Example

import "@stasies/js-carousel";

const carousel = ref();

onMounted(() => {
  carousel.value.breakpoints = {
    0: {
      slidesToShow: 1,
      slidesToScroll: 1,
    },
  };
});
<template>
  <div class="carousel__wrapper">
    <carousel-component ref="carousel" :wraparound="true" :autoplay="false">
      <slide-component> 1 </slide-component>
      <slide-component> 2 </slide-component>
      <slide-component> 3 </slide-component>
    </carousel-component>
    <button @click="carousel.prev()">prev</button>
    <button @click="carousel.next()">next</button>
  </div>
</template>

📄 License

MIT License © 2025 Stasies

1.1.22

12 months ago

1.1.20

12 months ago

1.1.19

12 months ago

1.1.18

12 months ago

1.1.17

12 months ago

1.1.16

12 months ago

1.1.15

12 months ago

1.1.14

12 months ago

1.1.13

12 months ago

1.1.12

12 months ago

1.1.11

12 months ago

1.1.10

12 months ago

1.1.9

12 months ago

1.1.8

12 months ago

1.1.7

12 months ago

1.1.6

12 months ago

1.1.5

12 months ago

1.1.4

12 months ago

1.1.0

12 months ago

1.0.9

12 months ago

1.0.8

12 months ago

1.0.7

12 months ago

1.0.6

12 months ago

1.0.5

12 months ago

1.0.4

12 months ago

1.1.3

12 months ago

1.1.2

12 months ago

1.1.1

12 months ago

1.0.2

12 months ago

1.0.1

12 months ago

1.0.0

12 months ago