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

长按加速- 解决react - setInterval下无法更新问题

最开始直接setInterval里,useState硬写,发现更新不,固定值

换let,发现dom更新不了

正确做法是用ref

并且pc端可以长按的,只是要用onTouchStart,不要用onMouseDown

onTouchStart={handleMouseDown} onTouchEnd={handleMouseUp} onTouchMove={handleMouseUp}

然后我是一个rounded大盒子

盒子里套了一个rounde的absoulte,但是overflow-hidden,和一个正方形的div,这样就会出现竖线进度条。

 <divclassName="py-[6px] px-[12px] rounded-[25px] flex justify-center  items-center gap-[5px] border "style={{ border: "1px solid rgba(255,255,255,0.80)" }}><div className=" absolute w-full h-full -z-10   overflow-hidden rounded-[25px] "><divclassName={`h-full -z-10  bg-[rgba(255,255,255,0.40)]`}style={{ width: `${progress}%` }}></div></div><span onTouchStart={handleMouseDown} onTouchEnd={handleMouseUp} onTouchMove={handleMouseUp}>长按跳过</span><LongClickIcon /></div>

code

 const [progress, setProgress] = useState(0)const timerRef = useRef<number>()const handleMouseDown = () => {timerRef.current = setInterval(() => {setProgress((prevProgress) => {if (prevProgress === 100) {clearInterval(timerRef.current)handleClick()return 100} else {return prevProgress + 1}})}, 10)}const handleMouseUp = () => {clearInterval(timerRef.current)setProgress(0)}useEffect(() => {return () => {setProgress(0)clearInterval(timerRef.current)}}, [])

就类似这样,实现的胶囊💊切半形加载

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

相关文章:

  • 路网双线合并单线——ArcGIS 解决方法
  • 【.NET全栈】ASP.NET开发Web应用——ADO.NET数据访问技术
  • 【机器学习】无监督学习和自监督学习
  • 蓝牙新篇章:WebKit的Web Bluetooth API深度解析
  • 2024可信数据库发展大会:TDengine CEO 陶建辉谈“做难而正确的事情”
  • Guns v7.3.0:基于 Vue3、Antdv 和 TypeScript 打造的开箱即用型前端框架
  • 掌握构建艺术:在Gradle中配置自定义的源代码管理(SCM)
  • 如何在 Mac 上下载安装植物大战僵尸杂交版? 最新版本 2.2 详细安装运行教程问题详解
  • ​前端Vue组件技术实践:打造自定义精美悬浮菜单按钮组件
  • 数据仓库的一致性维度
  • 【ffmpeg命令】RTMP推流
  • 人工智能大模型发展的新形势及其省思
  • Linux云计算 |【第一阶段】SERVICES-DAY4
  • 微信小程序 button样式设置为图片的方法
  • 2024 HNCTF PWN(hide_flag Rand_file_dockerfile Appetizers TTOCrv_)
  • 《昇思25天学习打卡营第25天|第14天》
  • Easysearch、Elasticsearch、Amazon OpenSearch 快照兼容对比
  • 数据分析入门指南:数据库入门(五)
  • Logback日志异步打印接入指南,输出自定义业务数据
  • 将iPad 作为Windows电脑副屏的几种方法(二)
  • [word] word表格跨页断开实现教程 #职场发展#媒体
  • 《Linux运维总结:基于ARM64架构CPU使用docker-compose一键离线部署单机版tendis2.4.2》
  • 【Apache Doris】周FAQ集锦:第 14 期
  • Log4j的原理及应用详解(四)
  • 农田自动化闸门的结构组成与功能解析
  • Python解释器:CPython 解释器
  • layui 让table里的下拉框不被遮挡
  • 【性能优化】在大批量数据下使用 HTML+CSS实现走马灯,防止页面卡顿
  • https和http区别
  • SD-AI大模型的安装