当前位置: 首页 > news >正文

CSS实现表格无限轮播

<div className={styles.tableTh}><div className={styles.thItem} style={{ width: '40%' }}>报警名称</div><div className={styles.thItem} style={{ width: '35%' }}>开始时间</div><div className={styles.thItem} style={{ width: '25%' }}>状态</div></div><div className={styles.tableBody} ref={scrollRef}>{alarmTableList.map((item, index) => {return (<div className={styles.bodyContent} key={index}><div style={{ width: '40%' }}>{item?.name}</div><div style={{ width: '35%' }}>{item?.time}</div><div style={{ width: '25%', color: item?.status === 0 ? '#12fd00' : '#f62222' }}>{item?.status === 0 ? '报警' : '正常'}</div></div>);})}</div>
      .tableTh {width: 100%;height: 36px;line-height: 36px;text-align: center;background-color: #2e3646;display: flex;justify-content: flex-start;.thItem {font-weight: bold;font-size: 16px;letter-spacing: 1px;color: #bae7ff;&:first-child {border-right: 1px solid #5a6477;}&:nth-child(2) {border-right: 1px solid #5a6477;}}}.tableBody {width: 100%;height: 86%;overflow: hidden;text-align: center;.bodyContent {font-size: 18px;display: flex;justify-content: flex-start;padding: 8px 0;&:nth-child(even) {background-color: #2e3646;}}}
  const scrollRef = useRef(null); // 用于表格滚动const [scrollTop, setScrollTop] = useState(0);const [alarmTableList, setAlarmTableList] = useState([]); // 表格数据// 滚动动画的函数const scrollAnimation = () => {if (scrollRef.current) {// 每次滚动的高度const step = 1;// 更新scrollTop的值setScrollTop((prevScrollTop) => {// 当滚动到内容底部时,重置滚动位置到顶部if (prevScrollTop >= scrollRef.current.scrollHeight - scrollRef.current.clientHeight) {return 0;}return prevScrollTop + step;});}};useEffect(() => {const tableArr = [];for (let i = 1; i <= 32; i++) {let obj = {name: i + '级报警',time: '09:23',status: i % 2 === 0 ? 1 : 0, // 0:报警};tableArr.push(obj);}setAlarmTableList(tableArr);const intervalId = setInterval(scrollAnimation, 50); // 每50毫秒滚动一次return () => {clearInterval(intervalId); // 组件卸载时清除定时器autofit.off();};}, []); // 当scrollTop变化时,重新设置滚动位置useEffect(() => {if (scrollRef.current) {// 设置scrollRef的scrollTop属性来滚动内容scrollRef.current.scrollTop = scrollTop;}}, [scrollTop]); // 当scrollTop变化时,重新设置滚动位置

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Kafka基础概念
  • @NotNull、@NotEmpty 和 @NotBlank 区别
  • 【leetcode 详解】生成特殊数字的最少操作【中等】(C++思路精析)
  • C#中实现Web API的签名验证
  • 24种设计模式介绍与6大设计原则(电子版教程)
  • [Javascript】前端面试基础3【每日学习并更新10】
  • 【iOS】——Block循环引用
  • Java面试题基础
  • JAVA(SpringBoot)对接微信登录
  • docker compose build 怎么才能只构建其中一个服务的镜像
  • 基于微信小程序+SpringBoot+Vue的儿童预防接种预约系统(带1w+文档)
  • 夯实数字经济的“新基建”-基于大数据与区块链技术的新型基础设施
  • LangChain4j-RAG基础
  • Linux相关指令
  • Apache DolphinScheduler Worker Task执行原理解析
  • 《用数据讲故事》作者Cole N. Knaflic:消除一切无效的图表
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • 【技术性】Search知识
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • Angular Elements 及其运作原理
  • C++入门教程(10):for 语句
  • HTTP--网络协议分层,http历史(二)
  • idea + plantuml 画流程图
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • Magento 1.x 中文订单打印乱码
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • Service Worker
  • Unix命令
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • - 概述 - 《设计模式(极简c++版)》
  • 互联网大裁员:Java程序员失工作,焉知不能进ali?
  • 让你的分享飞起来——极光推出社会化分享组件
  • 使用putty远程连接linux
  • 使用Tinker来调试Laravel应用程序的数据以及使用Tinker一些总结
  • -- 数据结构 顺序表 --Java
  • 一、python与pycharm的安装
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • 通过调用文摘列表API获取文摘
  • ​2021半年盘点,不想你错过的重磅新书
  • ​十个常见的 Python 脚本 (详细介绍 + 代码举例)
  • ​香农与信息论三大定律
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • (1)(1.8) MSP(MultiWii 串行协议)(4.1 版)
  • (13)DroneCAN 适配器节点(一)
  • (3)医疗图像处理:MRI磁共振成像-快速采集--(杨正汉)
  • (Bean工厂的后处理器入门)学习Spring的第七天
  • (C++20) consteval立即函数
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (二十四)Flask之flask-session组件
  • (六)c52学习之旅-独立按键
  • (十八)Flink CEP 详解
  • (算法二)滑动窗口
  • (原創) 博客園正式支援VHDL語法著色功能 (SOC) (VHDL)