拖拽 参考线

news/2024/11/29 6:29:13/

DOM

拖拽线设置为局对定位,容器为相对定位

<divstyle={{width: '100%',height: '100%',position: 'relative',}}><divid="guideX"className={`guideX ${isDraggingX ? 'dragging' : ''}`}style={styleX}// @ts-ignoreonMouseDown={handleMouseDownX}/>
</div>
.guideX {background-color: #aaa;height: 1px;position: absolute;z-index: 1001;
}.guideX:hover {cursor: move;
}

拖拽事件

1.记录当前是否被拖拽

const [isDraggingX, setIsDraggingX] = useState(false);

2.鼠标按下时状态标记为正在拖拽

const handleMouseDownX = (event: MouseEvent) => {event.preventDefault();setIsDraggingX(true);
};

3.拖拽时改变辅助线的位置

const handleMouseMove = (event: MouseEvent) => {event.preventDefault();if (isDraggingX) {setStyleX({...styleX,top: event.clientY,});}
};

4.结束拖拽时状态标记为非拖拽

const handleMouseDownX = (event: MouseEvent) => {event.preventDefault();setIsDraggingX(true);
};

完整代码

在这里插入图片描述

import { useEffect, useState } from 'react';
import './index.less';const Image = () => {const [styleX, setStyleX] = useState({width: '100%',left: 0,top: 0,});const [isDraggingX, setIsDraggingX] = useState(false);useEffect(() => {const handleMouseMove = (event: MouseEvent) => {event.preventDefault();if (isDraggingX) {setStyleX({...styleX,top: event.clientY,});}};const handleMouseUp = (event: MouseEvent) => {event.preventDefault();setIsDraggingX(false);};document.addEventListener('mousemove', handleMouseMove);document.addEventListener('mouseup', handleMouseUp);return () => {document.removeEventListener('mousemove', handleMouseMove);document.removeEventListener('mouseup', handleMouseUp);};}, [isDraggingX, styleX]);const handleMouseDownX = (event: MouseEvent) => {event.preventDefault();setIsDraggingX(true);};return (<divstyle={{width: '100%',height: '100%',position: 'relative',}}><divid="guideX"className={`guideX ${isDraggingX ? 'dragging' : ''}`}style={styleX}// @ts-ignoreonMouseDown={handleMouseDownX}/></div>);
};export default Image;

http://www.ppmy.cn/news/446660.html

相关文章

CAD曲线快捷键是什么?CAD画曲线教程

有些刚开始进行CAD入门学习的小伙伴&#xff0c;在使用浩辰CAD软件绘制图纸的过程中不知道怎么调用CAD曲线快捷键来快速绘制话曲线&#xff0c;其实很简单&#xff0c;下面小编就来给大家介绍一下浩辰CAD软件中CAD曲线快捷键的相关使用技巧吧&#xff01; CAD曲线快捷键是什么…

echarts添加参考线以及清除参考线。

xAxis: {type: category,// 两边是否留空白boundaryGap: false,// 添加参考线 true 清楚参考线false**"splitLine":{show:true},**// x轴的数字data: ["14","15","16","17","18","19","20"]…

Speedoffice 两个方法教你如何在Word文档中划线

怎样在word中画横线?其实在word中画横线很简单&#xff0c;今天主要分享2种方法&#xff0c;一起来学习下吧。 方法1&#xff1a;插入“直线”在word中画横线 点击word工具栏中的【插入】->点击插图选项卡中的【形状】->在弹出的窗口中点击【行】->然后选择线&…

PowerMILL巧用参考线加工美工线

PowerMILL巧用参考线加工美工线 powermill加工之-产品设计中为了产品的美观经常会做一些装饰线也称之美工线&#xff0c;装饰线在产品中只起到装饰的作用所以对于尺寸并不会有太高的要求&#xff0c;但是这种装饰线从美观的角度上讲不宜做的太大&#xff0c;使用NC在模具上直接…

Endnote20 在word里插入参考文献 [快捷键Alt+2]

https://www.yuque.com/duzh929/blog/kq5u0u原文地址 墙裂建议看看新方法&#xff1a;更简单的新方法 有效解决Endnote20插入参考文献 Endnote20已经上线了&#xff0c;楼主迫不及待的用上了&#xff0c;发现EndnoteX9里面那个引用的按钮不见了&#xff01; 怎么办&#xff…

photoshop 怎么用参考线将页面平分

我想将A4页面水平平均分9块、垂直平均分8块、也就是共8*972块相同大小的区域&#xff01; 手动对应标尺拉出参考线分的不精确&#xff0c;而且麻烦&#xff0c;请问有什么好的办法&#xff0c;而且分出来绝对精确的。 谢谢各位大虾指点&#xff01;&#xff01;&#xff01; 满…

CAD云线快捷键是什么?CAD云线快捷键命令使用技巧

CAD云线也叫修订云线&#xff0c;其是由连续圆弧组成的多段线&#xff0c;主要用于在检查阶段提醒用户注意图形的某个部分&#xff0c;相当于图纸上的注释或批注&#xff0c;以便阅图者查阅或修改。那么&#xff0c;你知道CAD云线快捷键是什么吗&#xff1f;下面就和一起来看看…

Apollo:参考线ReferenceLine是如何定义的

ReferenceLine 位于modules/planning/reference_line/reference_line.h 它是根据高清地图上的map_path_生成的&#xff0c;如下图&#xff1a; 默认情况下&#xff0c;只生成一条参考线如果有变道&#xff0c;那么就生成多条参考线 其定义如下 数据成员 可以看到它有四个成…