我的列表新增拖动调整位置功能
This commit is contained in:
@@ -1,10 +1,12 @@
|
||||
import tips from './Tips'
|
||||
import { debounce } from '../../utils'
|
||||
import { base as eventBaseName } from '@renderer/event/names'
|
||||
|
||||
let instance
|
||||
let prevTips
|
||||
let prevX = 0
|
||||
let prevY = 0
|
||||
let isDraging = false
|
||||
|
||||
const getTips = el =>
|
||||
el
|
||||
@@ -16,6 +18,7 @@ const getTips = el =>
|
||||
: null
|
||||
|
||||
const showTips = debounce(event => {
|
||||
if (isDraging) return
|
||||
let msg = getTips(event.target)
|
||||
if (!msg) return
|
||||
prevTips = msg
|
||||
@@ -46,6 +49,7 @@ const setTips = tips => {
|
||||
}
|
||||
|
||||
const updateTips = event => {
|
||||
if (isDraging) return
|
||||
if (!instance) return showTips(event)
|
||||
setTimeout(() => {
|
||||
let msg = getTips(event.target)
|
||||
@@ -56,7 +60,7 @@ const updateTips = event => {
|
||||
}
|
||||
|
||||
document.body.addEventListener('mousemove', event => {
|
||||
if (event.x == prevX && event.y == prevY) return
|
||||
if ((event.x == prevX && event.y == prevY) || isDraging) return
|
||||
prevX = event.x
|
||||
prevY = event.y
|
||||
hideTips()
|
||||
@@ -66,3 +70,12 @@ document.body.addEventListener('mousemove', event => {
|
||||
document.body.addEventListener('click', updateTips)
|
||||
|
||||
document.body.addEventListener('contextmenu', updateTips)
|
||||
|
||||
window.eventHub.on(eventBaseName.dragStart, () => {
|
||||
isDraging = true
|
||||
hideTips()
|
||||
})
|
||||
|
||||
window.eventHub.on(eventBaseName.dragEnd, () => {
|
||||
isDraging = false
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user