vue 基于vue-seamless-scroll无缝滚动的用法和遇到的问题解决

本文介绍了如何在Vue项目中使用vue-seamless-scroll实现表格滚动效果,包括组件安装、配置参数,以及遇到的行点击事件和悬停提示问题的解决方案。

vue 基于vue-seamless-scroll无缝滚动的用法和遇到的问题解决

背景

最近再做一个大屏项目,需要用到表格滚动效果,之前自己写过js实现,最近发现一个组件vue-seamless-scroll可以实现滚动,感觉挺方便的,准备用一下,但是用完之后才发现这个组件有很多坑需要解决.我把用法和一些问题的解决方法记录一下.

需求

实现表格滚动效果,表格中过长的是文字需要悬停展示,点击每行弹出详情弹框,数据每分钟更新一次.

安装vue-seamless-scroll

npm install vue-seamless-scroll --save  

引入组件

<vue-seamless-scroll></vue-seamless-scroll>
 
import vueSeamlessScroll from 'vue-seamless-scroll'
 
components: {
        vueSeamlessScroll
}, 

配置参数

// 监听属性 类似于data概念
        computed: {
            defaultOption () {
                return {
                    step: 0.2, // 数值越大速度滚动越快
                    limitMoveNum: 2, // 开始无缝滚动的数据量 this.dataList.length
                    hoverStop: true, // 是否开启鼠标悬停stop
                    direction: 1, // 0向下 1向上 2向左 3向右
                    openWatch: true, // 开启数据实时监控刷新dom
                    singleHeight: 0, // 单步运动停止的高度(默认值0是无缝不停止的滚动) direction => 0/1
                    singleWidth: 0, // 单步运动停止的宽度(默认值0是无缝不停止的滚动) direction => 2/3
                    waitTime: 1000 // 单步运动停止的时间(默认值1000ms)
                }
            }
 
        },  

上边的安装使用很简单,大家可以官方文档看看.
刚开始我还觉得这个组件很好用,可是后来现实改变了我的想法.

遇到的问题

我把项目代码放上,便于下边问题描述,这是最终代码

html
<div class="table_box">
        <div class="heared">
          <div
        
Vue 3 中实现组件的无缝滚动效果,可以使用 `vue3-seamless-scroll` 插件。该插件提供了一种简单的方式来实现列表或内容的无缝滚动功能,支持水平垂直方向的滚动,并且可以根据需求配置滚动速度、方向、步长等参数。 ### 基本使用步骤 #### 1. 安装插件 首先,需要通过 npm 或 yarn 安装 `vue3-seamless-scroll` 插件: ```bash npm install vue3-seamless-scroll ``` 或者 ```bash yarn add vue3-seamless-scroll ``` #### 2. 引入并注册组件 在 Vue 3 的单文件组件中,可以通过 `defineComponent` 来引入并注册 `Vue3SeamlessScroll` 组件: ```javascript import { defineComponent } from "vue"; import { Vue3SeamlessScroll } from "vue3-seamless-scroll"; export default defineComponent({ components: { Vue3SeamlessScroll } }); ``` #### 3. 在模板中使用组件 在模板中,可以直接使用 `<vue3-seamless-scroll>` 标签来包裹需要滚动的内容。例如,实现一个垂直方向的无缝滚动列表: ```vue <template> <vue3-seamless-scroll :list="scrollList" :speed="50" direction="vertical"> <ul> <li v-for="(item, index) in scrollList" :key="index"> {{ item }} </li> </ul> </vue3-seamless-scroll> </template> <script> import { defineComponent } from "vue"; import { Vue3SeamlessScroll } from "vue3-seamless-scroll"; export default defineComponent({ components: { Vue3SeamlessScroll }, data() { return { scrollList: [ "滚动内容 1", "滚动内容 2", "滚动内容 3", "滚动内容 4", "滚动内容 5" ] }; } }); </script> ``` #### 4. 配置参数 `vue3-seamless-scroll` 提供了多个配置参数,常见的参数如下: - `list`: 必填,需要滚动的数据列表。 - `speed`: 滚动速度,数值越大滚动越快(单位:毫秒)[^1]。 - `direction`: 滚动方向,支持 `vertical`(垂直) `horizontal`(水平)[^2]。 - `step`: 滚动步长,每次滚动的距离(单位:像素)。 - `hover`: 是否支持鼠标悬停暂停滚动(默认为 `true`)。 例如,设置水平滚动: ```vue <vue3-seamless-scroll :list="scrollList" :speed="80" direction="horizontal"> <div class="scroll-content"> <span v-for="(item, index) in scrollList" :key="index"> {{ item }} </span> </div> </vue3-seamless-scroll> ``` ### 样式调整 为了确保滚动效果正常显示,可能需要为滚动内容添加一些样式。例如,对于水平滚动,确保内容不会换行: ```css .scroll-content { white-space: nowrap; } ``` 对于垂直滚动,确保每个列表项的高度一致: ```css ul { list-style: none; padding: 0; margin: 0; } li { height: 30px; line-height: 30px; } ``` ### 注意事项 - `vue3-seamless-scroll` 依赖于 Vue 3 的 Composition API,因此确保项目环境支持 Vue 3。 - 如果滚动内容较少,可能需要通过 `step` `speed` 参数调整滚动效果,以获得最佳的用户体验。 通过上述步骤,可以在 Vue 3 中快速实现组件的无缝滚动效果,并根据需求进行灵活配置。 ---
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值