react可拖拽进度条怎么实现
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本文小编为大家详细介绍"react可拖拽进度条怎么实现",内容详细,步骤清晰,细节处理妥当,希望这篇"react可拖拽进度条怎么实现"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知
千家信息网最后更新 2026年11月03日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安全错误
数据库的锁怎样保障安全
云南咖啡
互联网科技公司排名
为想互联网科技怎么样
科技股互联网
北京互联网科技公司
互联网金融公司科技
有木互联网科技
猫创互联网科技
博兴的互联网电子科技公司
农村开互联网科技讲堂
贵州叶脉互联网科技有限公司所属行业
互联网保险科技创业
华夏恒生互联网科技013171
互联网高科技行业有哪些企业
中国新注册互联网科技
万物互联网智能科技
互联网科技新闻
科技和互联网行业的特点
深圳互联网科技园地址
宁波允成互联网科技有限公司
亿人帮互联网科技有限公司
科技创新与互联网经济
互联网前沿科技
多迪互联网科技有限公司
互联网科技素材视频竖屏
来此购互联网科技有限公司
米聚互联网科技南京有限公司排面
卓翼科技产业互联网合作
互联网领先科技活动
颐高云石互联网科技