让新闻列表自己转起来:vue3-seamless-scroll 实战

让新闻列表自己转起来:vue3-seamless-scroll 实战
让新闻列表自己转起来vue3-seamless-scroll 实战【免费下载链接】vue3-seamless-scrollVue3.0 无缝滚动组件项目地址: https://gitcode.com/gh_mirrors/vu/vue3-seamless-scroll新闻列表只放得下 5 条剩下的要翻页vue3-seamless-scroll 是基于 Vue 3 Composition API 的无缝滚动组件让列表在上、下、左、右四个方向无限循环虚拟列表渲染万条数据也能保持流畅。它不是又一套 CSS 跑马灯。传统做法把数据复制一份、位移到一半再跳回而组件只渲染可视项加缓冲项buffer 上限 5 条缓冲被滚完就 splice 补入新数据并触发 offset 事件分页请求无限数据是顺带的事。先把列表跑起来npm i vue3-seamless-scroll安装main.js 加一行app.use(Vue3SeamlessScroll)即完成全局注册也可在单个组件里局部引入。template div classnews-box vue3-seamless-scroll :listlist template #default{ data } div classnews-item{{ data.title }}/div /template /vue3-seamless-scroll /div /template style .news-box { height: 240px; overflow: hidden; } /style外层 div 必须有固定高度和overflow: hiddenslot 拿到data与index。默认directionup向上滚不传visibleCount时组件会量一条数据的高度自行算出可视条数条目高度不一致时手动指定更稳。三个实用改法公告列表可点选hover 暂停加滚轮微调用户要点某条公告时列表还在走点不准。开 hover 后 mouseenter 即停、mouseleave 恢复再开 wheel滚轮每格手动推进 10px。vue3-seamless-scroll :listlist hover wheel :step1 template #default{ data } div classnews-item{{ data.title }}/div /template /vue3-seamless-scrollv-model默认 true 自动滚动外部可绑值控制启停wheel仅在 hover 开启时生效内部 30ms 节流只要悬停暂停不要滚轮就去掉wheel商品横幅逐条过一遍连续跑马灯会切断首尾条目商品名读不完整。改成单步模式滚一条、停一拍、再滚一条。vue3-seamless-scroll :listlist singleLine :singleWaitTime2000 :step2 template #default{ data } div classnews-item{{ data.title }}/div /template /vue3-seamless-scrollsingleLine启用单步滚动每滚完一条停一次singleWaitTime控制停顿默认 1000ms读得慢就调到 2000step决定推进快慢调大更快但不会跳帧无限数据接进滚动列表后台一次只给 20 条列表滚不完。组件在缓冲被消耗时触发offset回调里取下一页再用暴露的add方法把数据插进头部全程不重建列表。vue3-seamless-scroll :listlist offsetloadMore template #default{ data } div classnews-item{{ data.title }}/div /template /vue3-seamless-scrolloffset回传 bufferSize缓冲条数与原数组用于决定翻页时机ref.add(index, values, cb)插入数据滚动不打断remove、update、reset同样挂在 ref 上同步后台增删改常用配置速查参数默认值作用何时需要改list必填滚动数据源始终传入数组v-modeltrue动画启停外部控制开始/暂停directionup滚动方向做左右跑马灯step0.5每帧位移像素调快慢hoverfalse悬停暂停列表可交互singleLinefalse单步逐条滚动横幅、排行榜singleWaitTime1000单步停顿 ms需要阅读时间visibleCount可视条数、ease过渡曲线、delay启动延迟、wheel滚轮微调属于进阶参数按需再配。卡住了先查这三件事列表不滚容器缺overflow: hidden或固定高度组件判断数据填不满补上即可。速度发飘step过大导致单帧位移超过缓冲宽度降到 1 以下。盒子 resize 后错位组件只在挂载时量尺寸监听尺寸变化调 ref 的reset()。控制台重复 key 告警数据没有稳定唯一 idv-for 用了 index换真实 id。源码指引核心实现在packages/Vue3SeamlessScroll.vuerequestAnimationFrame 驱动 transform 位移visibleItems 用 splice 维护虚拟窗口。仓库根目录跑npm run dev打开 example 工程src/App.vue 的切换面板把四方向、hover、wheel、单步、无限数据各组合都摆好了对照本文速查表逐条试一遍即可。【免费下载链接】vue3-seamless-scrollVue3.0 无缝滚动组件项目地址: https://gitcode.com/gh_mirrors/vu/vue3-seamless-scroll创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

最新新闻

日新闻

周新闻

月新闻