当前位置: 首页 > 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); // 组件卸载时清除定时器};}, []); // 当scrollTop变化时,重新设置滚动位置useEffect(() => {if (scrollRef.current) {// 设置scrollRef的scrollTop属性来滚动内容scrollRef.current.scrollTop = scrollTop;}}, [scrollTop]); // 当scrollTop变化时,重新设置滚动位置

http://www.lryc.cn/news/410966.html

相关文章:

  • 编程小白如何从迷茫走出
  • 14 B端产品的运营管理
  • STM32_RTOS学习笔记——1(列表与列表项)
  • 子网划分案例
  • javaweb_02:Maven
  • 19.延迟队列优化
  • P10477 Subway tree systems 题解,c++ 树相关题目
  • 18.jdk源码阅读之CopyOnWriteArrayList
  • 美股:AMD展现乐观前景,挑战AI加速器市场霸主
  • 如何提高计算机视觉技术在复杂环境和低光照条件下的物体识别准确率?
  • ubuntu cmake使用自己版本的qt
  • Python基础知识笔记---保留字
  • Python面试整理-Web开发
  • 民大食堂用餐小程序的设计
  • Linux系统编程(4):消息队列
  • 【初阶数据结构篇】单链表的实现(赋源码)
  • LeetCode 2844.生成特殊数字的最少操作(哈希表 + 贪心)
  • 昇思MindSpore 应用学习-基于 MindSpore 实现 BERT 对话情绪识别
  • 【初阶数据结构篇】顺序表和链表算法题
  • 使用weex进行APP混合开发
  • C++stl大根堆/小根堆的创建与记忆
  • visual studio性能探测器使用案列
  • redis的代码开发
  • 嗷呜,就问你接不接?
  • 避免过拟合,参数大模型强,正则让模型不要走偏
  • vue+element-ui的列表查询条件/筛选条件太多以下拉选择方式动态添加条件(支持全选、反选、清空)
  • LLM的训练与推断
  • uniapp使用WebSocket uniapp使用WebSocket Uniapp整合WebSocket uniapp使用 websocket
  • SSH Exporter:基于Prometheus的远程系统性能监控神器
  • Docker基础概念