修复播放详情页的鼠标隐藏问题
parent
3541b568c9
commit
dee16f6943
|
@ -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()
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue