Skip to content

Marquee 跑马灯

水平跑马灯组件,能够将文本、图片或任意卡片内容在水平轨道上进行无限无缝循环滚动。适合在营销页、Hero 引导区展示推荐标语或合作品牌。支持双向滚动、悬停暂停和边缘淡化效果,并通过 useReducedMotion 组合式函数自动适配系统动效偏好设置。

预览

Preview
⚡️ 快速流畅💥 新野蛮主义🚀 VUE 3 + TAILWIND🔥 受 SHADCN 启发
💻 代码与 BUG🛠️ 从构建到发布🌟 开源

变体

默认变体DEFAULT
静音变体MUTED

尺寸

小尺寸SMALL
大尺寸LARGE

提示:本组件尊重系统的「减少动态效果」设置。启用后跑马灯将停止滚动并以静态形式展示内容。

安装

pnpm dlx brutx-vue@latest add marquee

用法

vue
<script setup>
import { Marquee } from 'brutx-ui-vue'
</script>

<template>
    <Marquee :speed="20" fade>
        <span>⚡️ FAST AND FLUID</span>
        <span>💥 NEO-BRUTALISM</span>
        <span>🚀 VUE 3 + TAILWIND</span>
    </Marquee>
</template>

变体

通过 variant 属性控制跑马灯的背景色与文字色。

变体说明
default背景色背景,深色文字
primary主色(珊瑚红)背景
accent强调色(黄色)背景
muted静音色(灰)背景
vue
<Marquee variant="primary">
    <span>主色跑马灯</span>
</Marquee>

尺寸

通过 size 属性控制文字大小与内边距。

尺寸说明
sm小号文字,紧凑内边距
default默认大小
lg大号文字,宽松内边距
vue
<Marquee size="lg">
    <span>大号跑马灯</span>
</Marquee>

Props

Marquee

属性类型默认值说明
direction'left' | 'right''left'跑马灯滚动方向
speednumber20单次循环所耗费的秒数(数值越小速度越快)
pauseOnHoverbooleanfalse鼠标悬停时是否暂停动画
fadebooleanfalse是否开启左右边缘淡入淡出遮罩效果
variant'default' | 'primary' | 'accent' | 'muted''default'背景与文字颜色变体
size'sm' | 'default' | 'lg''default'文字大小与内边距
classstring""容器的自定义 CSS 类

可访问性

  • 动效降级:组件尊重 prefers-reduced-motion 系统设置。当用户启用"减少动态效果"时,移除轨道的滚动动画(添加 [animation:none]),内容以静态形式展示,同时不再渲染用于无缝衔接的重复轨道副本(aria-hidden 的镜像轨道),仅保留单份内容,避免视觉冗余。

该行为通过 useReducedMotion 组合式函数监听 prefers-reduced-motion: reduce 媒体查询实现,会随系统设置的切换实时响应,无需刷新页面。

样式定制

变量默认值说明
--speed20s单次循环动画时长,由 speed 属性自动设置

蛮力铸就。