react可拖拽进度条怎么实现
发表于:2025-11-12 作者:千家信息网编辑
千家信息网最后更新 2025年11月12日,本文小编为大家详细介绍"react可拖拽进度条怎么实现",内容详细,步骤清晰,细节处理妥当,希望这篇"react可拖拽进度条怎么实现"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知
千家信息网最后更新 2025年11月12日react可拖拽进度条怎么实现
本文小编为大家详细介绍"react可拖拽进度条怎么实现",内容详细,步骤清晰,细节处理妥当,希望这篇"react可拖拽进度条怎么实现"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
效果
/* * @Author: hongbin * @Date: 2022-04-16 13:26:39 * @LastEditors: hongbin * @LastEditTime: 2022-04-16 21:00:02 * @Description:拖动进度条组件 */import { FC, ReactElement, useRef } from "react";import styled from "styled-components";import { flexCenter } from "../../styled";interface IProps { /** * 0-1 */ value: number; /** * callback 0-1 */ onChange: (percent: number) => void;}const ProgressBar: FC = ({ value, onChange }): ReactElement => { const totalRef = useRef(null); return ( { const { offsetWidth } = totalRef.current!; const stop = e.currentTarget; const { offsetLeft } = stop; stop.style["left"] = offsetLeft + "px"; const { pageX: start } = e; const move = (e: MouseEvent) => { let val = offsetLeft + e.pageX - start; if (val <= 0) val = 0; if (val >= offsetWidth) val = offsetWidth; // stop.style["left"] = val + "px"; onChange(val / offsetWidth); }; const clear = () => { document.removeEventListener("mousemove", move); document.removeEventListener("mouseup", clear); document.removeEventListener("mouseleave", clear); }; document.addEventListener("mousemove", move); document.addEventListener("mouseup", clear); document.addEventListener("mouseleave", clear); }} style={{ left: value * 100 + "%" }} > );};export default ProgressBar;const Container = styled.div` position: relative; width: 10vw; height: 1vw; ${flexCenter}; & > :first-child { width: inherit; height: 0.5vw; background-color: var(--tint-color); border-radius: 10vw; overflow: hidden; display: flex; align-items: center; padding: 0.05vw; div { width: 5vw; height: 0.4vw; background-color: var(--deep-color); border-radius: 0.4vw; } } & > :last-child { width: 1vw; height: 1vw; background-color: var(--deep-color); border-radius: 1vw; position: absolute; cursor: pointer; transform: translateX(-0.5vw); svg { width: 0.9vw; } }`; export const flexCenter = css` display: flex; justify-content: center; align-items: center;`;
:root { --deep-color: #978961; --tint-color: #efe5d4;}读到这里,这篇"react可拖拽进度条怎么实现"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。
进度
文章
内容
妥当
思路
效果
新知
更多
步骤
知识
知识点
篇文章
组件
细节
行业
资讯
资讯频道
跟着
频道
处理
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
青岛海数网络技术有限公司
网络安全技术研发与应用专业
软件开发负责人面试题目
客户机 服务器模式例子
网络技术聚合问题
咨询公司数据库怎么搭建
网络安全考研400分各科成绩
重庆移动服务器租用的主要特点
数据机房服务器管理软件
笔记本电脑算不算服务器
丰台区信息化软件开发怎么样
数据库选择题答案解析
服务器 管理 终端密码
智能管理软件开发公司
保密及网络安全自查情况
网络技术咨询公司有哪些
数据库密码是md5
数据库的方式
禄劝品质软件开发市场报价
网络安全和信息化方案
关闭access数据库
数据库群成员按角色排序
区块链兼软件开发
南昌 服务器
陪伴您的网络安全守护者
数据库研究生录取
广西商友网络技术支持
打开服务器显示管理员
国盾传销盾互联软件开发
电脑服务器风扇用什么清洗