Vue Fast Marquee

A lightweight Vue 3 component that harnesses the power of CSS animations to create silky smooth marquees. (Inspired by react-fast-marquee)

vue-fast-marquee

Installation

# if you're using npm
npm i vue-fast-marquee

# if you're using yarn
yarn add vue-fast-marquee

# if you're using pnpm
pnpm i vue-fast-marquee

Usage

The most common use case is to register the component globally.

// main.js or similar
import "vue-fast-marquee/style.css"; // import the styles

import { createApp } from 'vue';
import Marquee from 'vue-fast-marquee';

createApp(App).use(Marquee).mount('#app');

Alternatively you can also import the component locally.

<script setup>
import { Marquee } from 'vue-fast-marquee';
</script>

You can then use the component in your template.

<script setup>
import { Marquee } from 'vue-fast-marquee';
import MyComponent from '../components/MyComponent.vue';
</script>

<template>
    <Marquee>
        <MyComponent />
        <MyComponent />
        <MyComponent />
    </Marquee>
</template>

Props

Property Type Default Description
style CSSProperties {} Inline style for the container div
className string "" Name of the css class to style the container div
autoFill boolean false Whether to automatically fill blank space in the marquee with copies of the children or not
play boolean true Whether to play or pause the marquee
pauseOnHover boolean false Whether to pause the marquee when hovered
pauseOnClick boolean false Whether to pause the marquee when clicked
direction "left" | "right"| "up"| "down" "left" The direction the marquee slides Warning: Vertical marquees are currently experimental and may be buggy. Please swap the values of the marquee’s height and width when setting them
speed number 50 Speed calculated as pixels/second
delay number 0 Duration to delay the animation after render, in seconds
loop number 0 The number of times the marquee should loop, 0 is equivalent to infinite
gradient boolean false Whether to show the gradient or not
gradientColor string white The color of the gradient
gradientWidth number | string 200 The width of the gradient on either side

Events

Event Name Description
finish Emitted when the marquee finishes scrolling and stops. Only calls if loop is non-zero.
cycleComplete Emitted when the marquee finishes a loop. Does not call if maximum loops are reached (use onFinish instead).

GitHub

View Github