当前位置: 首页 > ai >正文

使用vue3-seamless-scroll实现列表自动滚动播放

vue3-seamless-scroll组件支持上下左右无缝滚动,单步滚动,并且支持复杂图标的无缝滚动。

核心特性

  1. 多方向无缝滚动
    支持上下、左右四个方向的自动滚动,通过 direction 参数控制(默认 up),适用于新闻轮播、数据大屏等场景。

  2. 动态交互控制

    • 通过 v-model 绑定布尔值控制滚动启停。

    • 支持鼠标悬停暂停(hover: true)和滚轮手动滚动(wheel: true)。

  3. 响应式与动态数据
    可监听数据变化(isWatch: true),当列表长度达到 limitScrollNum(默认5)时触发滚动,适合动态加载内容。

  4. 复杂场景适配

    • 表格滚动:通过拆分表头与内容区域,避免表头跟随滚动(需复制一个隐藏表头的表格包裹组件)。

    • 单步滚动:通过 singleHeight 或 singleWidth 设置单步停止距离,结合 singleWaitTime 控制停留时间

安装与配置

1. 安装方式
npm install vue3-seamless-scroll --save
# 或
yarn add vue3-seamless-scroll
2. 组件注册
  • 全局注册(推荐):

    // main.js
    import { createApp } from 'vue';
    import vue3SeamlessScroll from "vue3-seamless-scroll";
    const app = createApp(App);
    app.use(vue3SeamlessScroll);
  • 局部注册

    <script setup>
    import { Vue3SeamlessScroll } from "vue3-seamless-scroll";
    </script>
3. 关键配置参数
参数类型说明
listArray必填,滚动数据列表
directionString滚动方向:up/down/left/right(默认 up
stepNumber步进速度,值越大滚动越快
copyNumNumber列表拷贝次数(默认1),用于无缝衔接
hoverBoolean是否启用鼠标悬停暂停(默认 false
singleHeightNumber垂直单步滚动停止高度(设为0则连续滚动)
singleWidthNumber水平单步滚动停止宽度

使用示例

基础列表滚动
<template><vue3-seamless-scroll :list="list" direction="up" :hover="true"class="scroll-container"><div v-for="(item, index) in list" :key="index" class="item">{{ item.title }}</div></vue3-seamless-scroll>
</template><style>
.scroll-container {height: 300px;overflow: hidden;
}
.item {padding: 12px 0;
}
</style>
表格内容滚动(保留表头)
<template><div class="scroll-wrap"><div class="scroll-header"><ul class="scroll-ul"><li class="scroll-li"><span style="min-width: 80px; width: calc(100% - 180px)">标题</span><span style="width: 180px">日期</span></li></ul></div><div class="scroll-content"><vue3-seamless-scroll class="scroll-list" :list="list" :hover="true" :step="0.4" :wheel="true" :isWatch="true"><ul class="scroll-ul" v-for="(item, index) in list" :key="index"><li class="scroll-li"><span style="min-width: 80px; width: calc(100% - 180px)">{{ item.title }}</span><span style="width: 180px">{{ item.date }}</span></li></ul></vue3-seamless-scroll></div>
</div>
</template><script lang="ts" setup>
import { ref } from 'vue';
import { Vue3SeamlessScroll } from "vue3-seamless-scroll";const list = ref([{title: "Vue3.0 无缝滚动组件展示数据第1条",date: Date.now(),},{title: "Vue3.0 无缝滚动组件展示数据第2条",date: Date.now(),},{title: "Vue3.0 无缝滚动组件展示数据第3条",date: Date.now(),},{title: "Vue3.0 无缝滚动组件展示数据第4条",date: Date.now(),},{title: "Vue3.0 无缝滚动组件展示数据第5条",date: Date.now(),},{title: "Vue3.0 无缝滚动组件展示数据第6条",date: Date.now(),},{title: "Vue3.0 无缝滚动组件展示数据第7条",date: Date.now(),},{title: "Vue3.0 无缝滚动组件展示数据第8条",date: Date.now(),},{title: "Vue3.0 无缝滚动组件展示数据第9条",date: Date.now(),},
]);   
</script><style scoped>
.scroll-wrap {width: 500px;height: 350px;overflow: hidden;
}
.scroll-header,
.scroll-content {width: 100%;display: flex;
}
.scroll-list {width: 100%;overflow: hidden;
}
.scroll-ul {width: 100%;display: flex;flex-direction: column;
}
.scroll-li {width: 100%;display: flex;line-height: 35px;
}
.scroll-li > span {display: flex;height: 35px;line-height: 35px;border-top: 1px solid #dcdfe6;border-left: 1px solid #dcdfe6;padding-left: 5px;overflow: hidden;
}
.scroll-li > span:last-child {border-right: 1px solid #dcdfe6;
}
.scroll-header .scroll-li {background-color: #F8F9FF;
}
.scroll-header .scroll-li > span {font-weight: bold; border-top: none;
}
.scroll-content .scroll-ul:last-child .scroll-li {border-bottom: 1px solid #dcdfe6;
}
</style>

http://www.xdnf.cn/news/5386.html

相关文章:

  • 中空电机在安装垂直轴高速电机后无法动平衡的原因及解决方案
  • 26考研——中央处理器_指令流水线_流水线的冒险与处理 流水线的性能指标 高级流水线技术(5)
  • LintCode第4题-丑数 II
  • java笔记06
  • Three.js + React 实战系列 - 联系方式提交表单区域 Contact 组件✨(表单绑定 + 表单验证)
  • 频率学派和贝叶斯学派置信区间/可信区间的区别
  • spark算子介绍
  • 机器视觉开发教程——C#如何封装海康工业相机SDK调用OpenCV/YOLO/VisionPro/Halcon算法
  • 高精地图数据错误的侵权责任认定与应对之道
  • 【PVE】ProxmoxVE8虚拟机,存储管理(host磁盘扩容,qcow2/vmdk导入vm,vm磁盘导出与迁移等)
  • 数据库分库分表实战指南:从原理到落地
  • 1247. 后缀表达式
  • Compose笔记(二十二)--NavController
  • 数值运算的误差估计
  • DAMA车轮图
  • PyCharm软件下载和配置Python解释器
  • 【英语笔记(八)】介词和冠词的分析;内容涵盖介词构成、常用介词用法、介词短语;使用冠词表示不同的含义:不定冠词、定冠词、零冠词
  • 【Java项目脚手架系列】第六篇:Spring Boot + JPA项目脚手架
  • Git初始化相关配置
  • Vue 跨域解决方案及其原理剖析
  • springboot3+vue3融合项目实战-大事件文章管理系统-更新用户密码
  • 【AI提示词】免疫系统思维专家
  • 英语句型结构
  • ElasticSearch进阶
  • 【C/C++】const关键词及拓展
  • MIT 6.S081 2020 Lab3 page tables 个人全流程
  • 基于Java和高德开放平台的WebAPI集成实践-以搜索POI2.0为例
  • Typora自动对其脚注序号
  • 差分与位移算子
  • PostGreSQL:数据表被锁无法操作