react可拖拽进度条怎么实现
发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,本文小编为大家详细介绍"react可拖拽进度条怎么实现",内容详细,步骤清晰,细节处理妥当,希望这篇"react可拖拽进度条怎么实现"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知
千家信息网最后更新 2025年01月21日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 ( );};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; } }`; { 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 const flexCenter = css` display: flex; justify-content: center; align-items: center;`;
:root { --deep-color: #978961; --tint-color: #efe5d4;}
读到这里,这篇"react可拖拽进度条怎么实现"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。
进度
文章
内容
妥当
思路
效果
新知
更多
步骤
知识
知识点
篇文章
组件
细节
行业
资讯
资讯频道
跟着
频道
处理
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络技术专业中专毕业证书
怎么自学网络技术
网络安全合规工程师
defcon网络安全盛会
广东电脑软件开发
长春爱蚂蚁软件开发中心
北京10年软件开发 工资
小米链接不到服务器
学生宿舍数据库管理
成都讯发网络技术有限公司
数据库group怎么用
上海正规网络技术费用
三门峡支付软件开发
国家坚持网络安全与发展并重
高要软件开发定制
计算机网络技术跟哪个老师
互联网百度科技直播
隆回二中学生信息数据库
贵州寰宇通软件开发有限公司
全球网络安全指数2017
JAVA MC免费服务器
软件开发人员管理规范
护航青少年网络安全图片
江北安卓软件开发工程
数据库中的下标从零开始
河北睿云网络技术有限公司
网络安全专题网络培训有什么好处
沈阳应用软件开发多少钱
新浪科技 互联网
贵州pdu服务器电源生产厂