近日,业务需要实现公告消息一直无缝滚动,我借助了vue-seamless-scroll插件,效果还不错,今天复盘一下。


一、安装

npm install vue-seamless-scroll --save

二、vue页面引用

import vueSeamlessScroll from 'vue-seamless-scroll'

三、注册组件

components

    vueSeamlessScroll

}

基本引入都完成,然后,开始我们的结构(HTML):

data 为绑定的数据:

数据结构:

listData: [
    {
        timestamp: "04",
        details:[
            {
                content:"内容",
                title:"标题",
                orgnization:"组织"
            }
        ]
    }, {
        timestamp: "06",
        details:[
            {
                content:"内容6",
                title:"标题6",
                orgnization:"组织6"
            }
        ]
    }
]

      ps:我的数据需要循环嵌套,所以是两层 json。

:class-option 是 vueSeamlessScroll 插件的配置项(写在 computed 里面):

// 配置vueSeamlessScroll的配置项
  computed:{
    option() {
      return {
        step: 0.6, // 数值越大速度滚动越快
        limitMoveNum: this.listData.length, // 开始无缝滚动的数据量 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)
      }
    },
  },

  注意:图中的 limitMoveNum 这一选项为 小于等于 当前数据的长度,大于当前数据长度的话这个竖向滚动无法生效。就这一个地方卡了近半个小时,文档也没有特别标注,所以我特别标注一下这一属性的重要性。

如有不当之处,欢迎大家探讨。

Logo

前往低代码交流专区

更多推荐