Skip to content

Auto Play

Set :auto-play="true" to advance slides automatically. Toggle it reactively to pause and resume at any time.

Usage

vue
<script setup lang="ts">
import { ref } from "vue";
import { useTemplateRef } from "vue";
import { Swiper } from "vue3-lite-swiper";

const slides = Array.from({ length: 6 }, (_, i) => `Slide ${i + 1}`);
const playing = ref(true);
const swiper = useTemplateRef("swiper");
</script>

<template>
  <Swiper
    ref="swiper"
    :slides="slides"
    :slide-width="220"
    :gap="16"
    :auto-play="playing"
    loop
  >
    <template #default="{ item }">
      <div class="slide">{{ item }}</div>
    </template>
  </Swiper>

  <div class="controls">
    <button @click="swiper?.previous()">← Prev</button>
    <button @click="playing = !playing">
      {{ playing ? "⏸ Pause" : "▶ Play" }}
    </button>
    <button @click="swiper?.next()">Next →</button>
  </div>
</template>

Behaviour

ConditionResult
loop: trueCalls next() on each tick — loops indefinitely
loop: falseCalls next() until last slide, then resets to index 0
:auto-play="false"Stops the interval immediately
:auto-play="true"Starts advancing on the next tick

Pair with loop

Autoplay is most useful combined with loop. Without it, the carousel resets to the first slide each time it reaches the end.

Released under the MIT License.