ElementUI table无缝循环滚动

ElementUI table无缝循环滚动

恰好实习的时候遇到了这个需求,而且网上的代码有点僵硬,所以我改了改,顺手水一篇博客出来,其实是很简单的东西。

部分思路来源:https://blog.csdn.net/qq_38543537/article/details/122842943

但是来源的代码,在滚动到底部时会有非常生硬的切换,我这里改了一些代码,让它的滚动变得流畅。

效果:

ElementUI table无缝循环滚动

原理:

ElementUI table无缝循环滚动

代码:

HTML:


JS:

data() {
    return {
      timer: null,
        //注意:它需要将展示的数据额外复制一份(为了无缝滚动)
      tableData: [
        { num:1},
        { num:2},
        { num:3},
        { num:4},
        { num:5},
        { num:6},
        { num:7},
        { num:8},
        { num:9},
        { num:10},
        { num:1},
        { num:2},
        { num:3},
        { num:4},
        { num:5},
        { num:6},
        { num:7},
        { num:8},
        { num:9},
        { num:10},
      ]
    };
  },
methods: {
    //自动循环播放
    autoCycle() {
       //拿到相关元素
      const wrapper = this.$refs.table.bodyWrapper
//window.requestAnimationFrame()或许是更好的选择,但是有点快,
//如果要慢的话,可能需要写额外的判断或函数(difftime)
//优点是 减少回流和重塑。 缺点是 在主线程,如果卡的话会影响动画。
      this.timer = setInterval(() => {
        // 元素自增距离顶部1像素
        wrapper.scrollTop += 1
        // 判断元素是否滚动到底部(可视高度+距离顶部=整个高度)
        if (wrapper.clientHeight + wrapper.scrollTop == wrapper.scrollHeight) {
           // 重置table距离顶部距离。值=(滚动到底部时,距离顶部的大小) - 整个高度/2
          wrapper.scrollTop = wrapper.scrollTop - wrapper.scrollHeight/2
        }
      }, 50)
    }
  }

Original: https://www.cnblogs.com/m1pha/p/16561644.html
Author: m1pha
Title: ElementUI table无缝循环滚动

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/582618/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 系统执行命令记录到message 日志文件中

    直接 配置 /etc/profile 配置文件添加一样,简单高定。 export PROMPT_COMMAND='{ msg=$(history 1 | { read x y; e…

    Linux 2023年6月8日
    077
  • linux系统(centos)redis分片集群安装部署

    redis分片集群安装与部署 只需更改配置文件 部署架构:6个节点,3主3从。数据集分为3片,分别再A,B,C节点上。A1和B1和C1分别为A,B,C的副本。 散列槽: ​ Red…

    Linux 2023年6月8日
    095
  • ansible-复制模块

    简介:临时的,在ansible中是指需要快速执行的单条命令,并且不需要保存的命令。对于复杂的命令则为 playbook。 1、复制模块 可在终端执行ansible-doc copy…

    Linux 2023年6月6日
    0114
  • 可视化软件navicat

    目录 多表查询思路 可视化软件navicat *多表查询练习题 内容 多表查询思路 多表查询的思路总共就两种: 白嫖两个表 获取jason所在的部门名称 子查询 相当于是我们日常生…

    Linux 2023年6月7日
    080
  • Java 内功修炼 之 数据结构与算法(一)

    (1)双向链表通过上面单链表相关操作,可以知道 单链表的 查找方向唯一。而双向链表在 单链表的 基础上在 添加一个指针域(pre),这个指针域用来指向 当前节点的上一个节点,从而实…

    Linux 2023年6月11日
    0108
  • 剑指offer计划25(模拟中等)—java

    1.1、题目1 剑指 Offer 29. 顺时针打印矩阵 1.2、解法 常规开头,先判断特殊情况,然后创建四个变量存放矩阵四边的长度限制。创建res数组存放结果。循坏开始,遍历完一…

    Linux 2023年6月11日
    097
  • Ubuntu18上面一个非常有用的配置工具【gnome-tweaks】

    Ubuntu 18.04 LTS的Gnome桌面UI主打简约,但是相比前几个发行版本上的UI功能, 18.04默认的UI已经阉割掉了。其实 Ubuntu官方将我们上面所说的UI功能…

    Linux 2023年5月27日
    0109
  • DEX文件解析–7、类及其类数据解析(完结篇)

    一、前言 前置技能链接:DEX文件解析—1、dex文件头解析DEX文件解析—2、Dex文件checksum(校验和)解析DEX文件解析–3、de…

    Linux 2023年6月8日
    089
  • 软件工程 统一过程软件(RUP) 第5篇随笔

    1.RUP简介 本质: 是”一般的过程框架” 为软件开发,进行不同抽象层之间”映射”,安排其开发活动的次序,指定任务和需要开发的志平…

    Linux 2023年6月7日
    0123
  • zookeeper 配置文件详情

    目录结构 目录名作用 bin 存放系统脚本 conf 存放配置文件 contrib zk附加功能支持 dist-maven maven仓库文件 docs zk文档 lib 依赖的第…

    Linux 2023年6月8日
    070
  • ubuntu 20.04.1 安装 PHP+Nginx

    ubuntu 20.04.1 安装 PHP+Nginx 全流程 ubuntu 20.04.1 安装 PHP+Nginx 更新源 sudo apt-get update 安装环境包 …

    Linux 2023年6月7日
    0131
  • linux版powershell中,tab补全,linux外部命令参数名,的模块介绍

    关键字 linux powershell pwsh 补全 complete bash zsh 摘要:linux用户的福音!在linux版powershell中,补全linux外部命…

    Linux 2023年6月14日
    089
  • 第二周作业

    第二周作业 一、显示在/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或者目录 [root@CentOS8 / ]#!mkdir mkdir /etc/…

    Linux 2023年6月13日
    094
  • 016 Linux 卧槽,看懂进程信息也不难嘛?top、ps

    1 扒开看看 top 命令参数详情 第一行,[top – ]任务队列信息 第二行,[Tasks] 任务(进程) 第三行,[Cpu(s)]状态信息 第四行,[Mem]内存…

    Linux 2023年5月27日
    0121
  • NC反弹shell的几种方法

    nc的作用 (1)实现任意TCP/UDP端口的侦听,nc可以作为server以TCP或UDP方式侦听指定端口 (2)端口的扫描,nc可以作为client发起TCP或UDP连接 (3…

    Linux 2023年6月14日
    086
  • K8S 从私有仓库拉取镜像

    通常来讲,我们在通过公共镜像仓库拉取docker镜像的时候,不需要任何的认证操作,但我们在构建了企业的私有镜像以后,就不得不在拉取镜像之前通过用户名密码来完成认证。 在docker…

    Linux 2023年6月6日
    093
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球