vue 表格自动轮播

今天写个tab表格自动轮播,写js费劲,找了个组件datav轮播表

官方事例地址:

http://datav.jiaminghi.com/guide/scrollBoard.html

安装:npm install @jiaminghi/data-view

局部引入:

import Vue from 'vue'

import { scrollBoard } from '@jiaminghi/data-view'

  

事例dom:

<dv-scroll-board :config="config" style="width:100%;height:100%;font-size: 20px;" @click="downloadAudioFrequency"/>

data() {

        return {

                config: {},

        }

},

created() {
  this.config = {
      header: ['时间', '通信方式', '通话音频'],
      headerBGC: 'midnightblue', // 表头背景色
      oddRowBGC: 'transparent', // 奇数行背景色
      evenRowBGC: 'transparent', // 偶数行背景色
      waitTime: 3000, // 滚动间隔时间
      index: true, // 是否显示序号
      indexHeader: '序号', // 序号表头
      carousel: 'page', // 轮播'single'|'page'
      hoverPause: true, // 鼠标悬浮是否暂停滚动
      columnWidth: [60, 200, 120, 120], // 列宽
      align: ['center', 'center', 'center', 'center'], // 列对齐方式
      data: [
        ['2022-10-25 10:12:35', '终端→总台', '音频1', '<span style="dispaly:none">1</span>'],
        ['2022-10-25 10:15:35', '终端→终端', '音频2', '1'],
        ['2022-10-25 10:17:35', '总台→终端', '音频3', '1'],
        ['2022-10-25 10:32:35', '终端→总台', '音频4', '1'],
        ['2022-10-25 10:32:35', '终端→终端', '音频5', '1'],
        ['2022-10-25 10:42:35', '终端→终端', '音频6', '1'],
        ['2022-10-25 10:42:35', '终端→总台', '音频7', '1'],
        ['2022-10-25 10:52:35', '终端→总台', '音频8', '1'],
        ['2022-10-25 11:12:35', '终端→终端', '音频9', '1'],
        ['2022-10-25 12:12:35', '终端→总台', '音频10', '1'],
        ['2022-10-25 13:12:35', '终端→总台', '音频11', '1'],
        ['2022-10-25 13:13:35', '终端→终端', '音频12', '1'],
        ['2022-10-25 14:14:35', '终端→总台', '音频13', '1'],
        ['2022-10-25 14:22:35', '总台→终端', '音频14', '1'],
        ['2022-10-25 15:32:35', '终端→总台', '音频15', '1'],
        ['2022-10-25 15:42:35', '终端→总台', '音频16', '1'],
        ['2022-10-25 16:23:35', '总台→终端', '音频17', '1'],
        ['2022-10-25 18:42:35', '终端→总台', '音频18', '1'],
        ['2022-10-25 20:17:35', '总台→终端', '音频19', '1'],
        ['2022-10-25 22:16:35', '终端→总台', '音频20', '1']
      ]
    }

}

最终效果:

 

 

### 实现表格纵向轮播效果 为了实现表格的纵向轮播效果,可以采用HTML、CSS以及JavaScript相结合的方式。首先定义好基本结构,使用`<div>`容器包裹每一行的内容模拟表格行的效果,并设置样式使得这些行能够垂直排列并隐藏超出部分。 #### HTML 结构 创建一个包含多行数据的列表作为要滚动显示的数据源: ```html <div class="carousel-container"> <ul id="tableRows" class="carousel-list"> <!-- 表格行 --> <li>Row 1 Data</li> <li>Row 2 Data</li> <li>Row 3 Data</li> ... </ul> </div> ``` #### CSS 样式 应用特定于轮播样式的类名`.carousel-container`和`.carousel-list`给对应的元素,确保它们按照预期行为工作。这里设置了固定高度并且溢出内容被裁剪掉;同时为每项赋予相同的尺寸以便平滑过渡[^1]。 ```css .carousel-container { position: relative; overflow: hidden; height: 80px; /* 显示区域的高度 */ } .carousel-list { margin: 0; padding: 0; list-style-type: none; transition: transform .5s ease-in-out; } .carousel-list li { display: block; min-height: 40px; /* 单个条目的最小高度 */ } ``` #### JavaScript 功能逻辑 编写脚本来控制定时器触发自动切换展示不同的行。此代码片段展示了如何动态改变`transform`属性值从而达到视觉上的上下移动效果[^2]。 ```javascript let currentIndex = 0, itemsCount = document.getElementById('tableRows').children.length; function scrollItems() { const itemHeight = 40, // 每一项的高度 container = document.querySelector('.carousel-list'); currentIndex++; if (currentIndex >= itemsCount) currentIndex = 0; let translateYValue = -(currentIndex * itemHeight); container.style.transform = `translateY(${translateYValue}px)`; } setInterval(scrollItems, 2000); // 设置每隔两秒调用一次scrollItems函数 ``` 上述方法提供了一种简单而有效的解决方案来构建具有纵向滚动特性的表格视图组件。通过调整参数如时间间隔、每次滚动的数量等还可以进一步优化用户体验。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值