feat: 增加鼠标按下拖拽选点功能

This commit is contained in:
Xu Zhimeng 2023-07-10 09:45:59 +08:00
parent 3c92cbff86
commit 194162804e

View File

@ -4,6 +4,10 @@
class="color-palette"
:style="{ width: circleWidth + 'px', height: circleWidth + 'px' }"
@click="handleClick"
@mousedown="handleMouseDown"
@mousemove="handleMouseMove"
@mouseup="handleMouseUp"
@mouseout="handleMouseOut"
>
<span
ref="dotElemRef"
@ -43,11 +47,38 @@ export default {
dotPosition: {
x: 0,
y: 0
}
},
isMouseDown: false
}
},
methods: {
handleClick({ offsetX, offsetY }) {
this.setPositionByMouseEvent(offsetX, offsetY)
},
//
handleMouseDown({ offsetX, offsetY }) {
this.setPositionByMouseEvent(offsetX, offsetY)
this.isMouseDown = true
},
handleMouseMove({ offsetX, offsetY }) {
if (this.isMouseDown) {
this.setPositionByMouseEvent(offsetX, offsetY)
}
},
//
handleMouseUp() {
this.isMouseDown = false
},
//
handleMouseOut() {
this.isMouseDown = false
},
setPositionByMouseEvent(offsetX, offsetY) {
const { degree, radian } = this.getDegree([offsetX, offsetY])
for (let index = 0; index < this.range; index++) {
if (degree >= this.perDegree * index && degree < this.perDegree * (index + 1)) {