修复播放详情页的鼠标隐藏问题

pull/930/merge
lyswhut 2022-04-01 14:28:22 +08:00
parent 3541b568c9
commit dee16f6943
1 changed files with 15 additions and 8 deletions

View File

@ -11,20 +11,26 @@ const isControl = dom => {
if (dom.getAttribute('aria-label') || dom.tagName == 'BUTTON') return true
return isControl(dom.parentNode)
}
const startTimeout = debounce(() => {
if (!isAutoHide || isMouseDown || !event) return
if (isControl(document.elementFromPoint(event.clientX, event.clientY))) return
const lockPointer = () => {
if (!isAutoHide || isMouseDown) return
if (event && isControl(document.elementFromPoint(event.clientX, event.clientY))) return
dom.requestPointerLock()
isLockedPointer = true
}, 3000)
}
const unLockPointer = () => {
if (!isLockedPointer) return
document.exitPointerLock()
isLockedPointer = false
}
const startTimeout = debounce(lockPointer, 3000)
const handleMouseMove = (_event) => {
event = _event
startTimeout()
if (!isLockedPointer) return
document.exitPointerLock()
isLockedPointer = false
unLockPointer()
}
const handleMouseDown = () => {
@ -36,13 +42,13 @@ const handleMouseUp = () => {
}
export const registerAutoHideMounse = _dom => {
startTimeout()
if (isAutoHide || !_dom) return
isAutoHide = true
_dom.addEventListener('mousemove', handleMouseMove)
_dom.addEventListener('mousedown', handleMouseDown)
_dom.addEventListener('mouseup', handleMouseUp)
dom = _dom
startTimeout()
}
export const unregisterAutoHideMounse = dom => {
@ -52,4 +58,5 @@ export const unregisterAutoHideMounse = dom => {
dom?.removeEventListener('mousemove', handleMouseMove)
dom?.removeEventListener('mousedown', handleMouseDown)
dom?.removeEventListener('mouseup', handleMouseUp)
unLockPointer()
}