react实现列表滚动组件

1.需求

在开发项目的时候,从服务端获取到数据列表后,展示给用户看:需要实现数据自动滚动效果,怎么实现呢?如下图所示:

2.实现

把上面需要实现的功能写成一个组件,页面直接调用该组件即可,代码如下:

要引入组件页面的代码:   

import Scroll from "../../components/Scroll";const Index = () => {return (<div class={style.main}><Scroll /></div>)
}export default Index;

组件:

import style from "./style.less";
import React, { useEffect, useRef, useState } from "react";const Scroll = () => {const timer = useRef(null);//这里的数据是通过服务端api接口获取的const marqueeList = [{phone: "155****1111",content: "签到获取",money: 12.22,},{phone: "151****1111",content: "签到获取",money: 2,},{phone: "152****1111",content: "签到获取",money: 2.22,},...];//是否滚动const [isScrolle, setIsScrolle] = useState(true);//滚动速度,值越小,滚动越快const scrollSpeed = 100;const warper = useRef();//原数据const childDom = useRef();//拷贝数据const childDomCopy = useRef();//鼠标移动,移除方法const hoverHandler = (flag) => setIsScrolle(flag);useEffect(() => {// 设置轮播滚动多拷贝一层,让它无缝滚动childDom.current.innerHTML = childDomCopy.current.innerHTML;if (isScrolle) {if (timer.current) {clearInterval(timer.current);}timer.current = setInterval(() => {warper.current.scrollTop >= childDom.current.scrollHeight? (warper.current.scrollTop = 0): warper.current.scrollTop++;}, scrollSpeed);}return () => {clearInterval(timer.current);};}, [isScrolle]);return (<div class={style.content}><div class={style.parent} ref={warper}><div class={`${style.ul_scoll}`} ref={childDomCopy}>{marqueeList.map((value, index) => (<listyle={{backgroundColor: index % 2 == 0 ? "#S1AAAA" : "#ABCDEF"}}key={value}onMouseOver={() => hoverHandler(false)}onMouseLeave={() => hoverHandler(true)}><div class={style.li_intro}><div>{value.phone}</div><div>{value.content}</div><div class={style.li_money_intro}><div  class={style.li_money}>+{value.money}</div><div  class={style.li_rmb}>RMB</div></div></div></li>))}</div><div class={`${style.ul_scoll}`} ref={childDomCopy}></div></div></div>);
};export default Scroll;

css:

.content {width: 100%;height: 14.16rem;overflow: hidden;position: relative;margin: auto;
}.parent {top: 1rem;position: relative;height: 11.16rem;overflow: hidden;line-height: 2.5rem;overflow-y: scroll;scrollbar-width: none;-ms-overflow-style: none;
}.parent::-webkit-scrollbar {display: none;
}.ul_scoll li {width: 100%;height: 2.5rem;font-size: 0.9rem;font-weight: bold;text-align: center;letter-spacing: 0.025rem;line-height: 2.5rem;color: red;
}.li_intro {color: #205F59;font-weight: 930;flex-direction: row;align-items: center;justify-content: space-between;display: flex;padding-left: 0.25rem;padding-right: 0.25rem;
}.li_money_intro {display:flex;color: #39B54A;
}.li_oney {font-size: 1rem;
}.li_rmb {color:#FF6000;margin-left:0.8rem;font-size: 0.8rem;
}

这样就能够实现数据不停滚动了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/138637.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机视觉与深度学习-经典网络解析-AlexNetZFNetVGGGoogLeNetResNet[北邮鲁鹏]

目录标题 参考文章LeNet5AlexNet参考文章AlexNet模型结构AlexNet共8层&#xff1a;AlexNet运作流程 简单代码实现重要说明重要技巧主要贡献 ZFNet主要改进减小第一层卷积核将第二、第三个卷积层的卷积步长都设置为2增加了第三、第四个卷积层的卷积核个数 VGG参考VGG网络贡献使用…

锐捷交换机vlan隔离(wifi段仅能访问外网,和内网隔离)

因为公司的wifi段&#xff0c;未做隔离&#xff0c;无意间上了网&#xff0c;发现能访问内网网段&#xff0c;这里内网是10、20段&#xff0c;管理网段是100段&#xff0c;于是做了和内网的vlan隔离。 拓朴如下&#xff0c;所有vlan的网关都起在核心上&#xff0c;核心上起了DH…

批量调整视频饱和度和色度,提升你的视频剪辑效率!

作为一名视频剪辑师&#xff0c;你是否经常为如何高效地调整多个视频的饱和度和色度而烦恼&#xff1f;现在&#xff0c;我们为你提供了一种简单、快速、准确的方法&#xff0c;帮助你轻松解决这个问题&#xff01; 首先我们要进入好简单批量智剪&#xff0c;并在左侧的板块栏…

iPhone15拉胯,国产手机用折叠屏大反攻!

文 | 智能相对论 作者 | K星 iPhone偷懒式的15代机型发布&#xff0c;让市场大跌眼镜&#xff0c;虽然在莫名的宗教虔诚下依旧卖得很好&#xff0c;但苹果走下神坛之巅已经板上钉钉。 但是&#xff0c;苹果从最高处摔落&#xff0c;却依旧在神坛之上&#xff0c;iPhone15拉胯…

K8s的网络——Underlay和Overlay网络

0. 基础知识 1&#xff09;网络7层基础知识 在网络7层协议基础里&#xff0c; 第一层物理链路&#xff1b;第二层是数据链路层&#xff0c;在第一层的基础上引入MAC地址做数据转发。MAC地址在局域网内具有唯一性&#xff0c;主机A发送数据时&#xff0c;会向局域网内进行广播…

九、【漏洞复现】Struts 2 远程代码执行漏洞s2-046(CVE-2017-5638)

九、【漏洞复现】Struts 2 远程代码执行漏洞s2-046&#xff08;CVE-2017-5638&#xff09; 9.1、漏洞原理 Struts 2是一个基于MVC设计模式的Web应用框架&#xff0c;本质上相当于一个Servlet,在MVC设计模式中&#xff0c;Struts2作为控制器来建立模型与视图进行数据交互。 攻…

GE IS420UCSCH2A-C-V0.1-A模拟量输入模块

GE IS420UCSCH2A-C-V0.1-A 模拟量输入模块是一种用于数据采集和监测的电子模块&#xff0c;通常应用于工业控制系统、监测设备和自动化系统中。以下是可能与该模拟量输入模块相关的一些产品特点&#xff1a; 多通道输入&#xff1a; GE IS420UCSCH2A-C-V0.1-A 模拟量输入模块通…

npm发布vue3自定义组件库--方法一

npm发布vue3自定义组件库 创建项目 vue create test-ui自定义组件 创建自定义组件&#xff0c;组件名称根据你的需求来&#xff0c;最好一个组件一个文件夹&#xff0c;下图是我的示例。 src/components 组件和你写页面一样&#xff0c;所谓组件就是方便实用&#xff0c;不…

2023上半年薪资报告出炉!人均月入过万?!

最近&#xff0c;大家都有听到经济回暖的消息吧&#xff1f;经过三年口罩大考之后&#xff0c;2023年上半年各行各业都迎来复苏&#xff0c;关于职场的话题讨论也不绝于耳。 现在就业环境如何&#xff1f;哪些行业更有前途&#xff1f;大家在求职时是选择一线城市还是回二、三…

四川玖璨电子商务有限公司专注抖音电商运营

四川玖璨电商是一个靠谱的抖音培训公司&#xff0c;在电商行业内有着广泛的知名度和良好的口碑。该公司通过多年的发展&#xff0c;形成了独特的运营理念和有效的运营策略&#xff0c;为商家提供了一站式的抖音电商运营服务。 首先&#xff0c;四川玖璨电子商务有限公司注重与…

【c语言】贪吃蛇

当我们不想学习新知识的时候&#xff0c;并且特别无聊&#xff0c;就会突然先看看别人怎么写游戏的&#xff0c;今天给大家分享的是贪吃蛇&#xff0c;所需要的知识有结构体&#xff0c;枚举&#xff0c;以及easy-x图形库的一些基本函数就完全够用了&#xff0c;本来我想插入游…

「聊设计模式」之 设计模式的前世今生

&#x1f3c6;本文收录于《聊设计模式》专栏&#xff0c;专门攻坚指数级提升&#xff0c;助你一臂之力&#xff0c;带你早日登顶&#x1f680;&#xff0c;欢迎持续关注&&收藏&&订阅&#xff01; 大家下午好&#xff0c;我是bug菌&#xff0c;今天我们继续聊设…

服务网格和性能优化:介绍如何通过服务网格提高微服务架构的性能和可扩展性

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

RS485以及MODBUS学习

学习目的&#xff1a; 1、什么是485&#xff1f; 2、485如何通信&#xff1f; 3、如何使用熟能生巧&#xff1f; RS485是一种四总线通信&#xff0c;分别是VCC、GND、485_A、485_B。两根负责通信&#xff0c;两根负责进行供电。 RS485通信 硬件层&#xff1a;解决的是数据传输问…

为什么伦敦金获得连续盈利这么难

相信在伦敦金市场中投资的投资者都有这个感受&#xff0c;我们很容易在市场中获取力量利润&#xff0c;但是要长期的在市场中稳定的盈利&#xff0c;持续不断地获利&#xff0c;这对很多投资者来说都有点难&#xff0c;可以这么说&#xff0c;稳定盈利是普通投资者一个阶段性的…

Spring Boot 各版本的支持时间

1. Spring Boot 各版本的支持时间 Spring Boot 2.7 的版本&#xff0c;支持到2023-11-18&#xff0c;之后就要停止支持了。 按照官网的数据&#xff0c;3.0 的版本也是到2023年11月就停止支持了。如果要转到SpringBoot3&#xff0c;直接从3.1开始吧。到写这篇文章时&#xff…

霍夫曼编码,计算霍夫曼编码树(数字图像处理大题复习 P7)

文章目录 计算出 x1~x6 的树计算 x1~x6 的编码得出霍夫曼编码 w1~w6 计算出 x1~x6 的树 我们先对 x1~x6 进行排序把最底下的加起来&#xff0c;上面写0 下面写1 然后一层一层加上去&#xff0c;注意加上去以后要 重新排序 计算 x1~x6 的编码 举例&#xff0c;从 x5 出发&…

性能测试监控指标及分析调优 | 京东云技术团队一、哪些因素会成为系统的瓶颈?

1. 什么是MAF和MEF? MEF和MEF微软官方介绍&#xff1a;Managed Extensibility Framework (MEF) - .NET Framework | Microsoft Learn MEF是轻量化的插件框架&#xff0c;MAF是复杂的插件框架。 因为MAF有进程隔离和程序域隔离可选。我需要插件进程隔离同时快速传递数据&…

基于Spring Boot的网上购物商城系统

目录 前言 一、技术栈 二、系统功能介绍 用户功能模块的实现 管理员功能模块的实现 商家功能模块的实现 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 本课题是根据用户的需要以及网络的优势建立的一个基于Spring Boot的网上购物商城系统&#xff0c;…

ubuntu、linux in window安装docker教程

1、首先进入管理员权限。 2、更新软件源。 sudo apt update 3、安装一些依赖 sudo apt install apt-transport-https ca-certificates curl software-properties-common 4、为系统添加Docker的密钥 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-k…