| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- let t = null
- let r = null
- let l = null
- export function useMouseTooltip() {
- const u = (e) => {
- document.documentElement.style.setProperty('--mouse-x', e.clientX + 'px')
- document.documentElement.style.setProperty('--mouse-y', e.clientY + 'px')
- clearTimeout(t)
- t = setTimeout(() => {
- document.documentElement.style.setProperty('--mouse-x', e.clientX + 'px')
- document.documentElement.style.setProperty('--mouse-y', e.clientY + 'px')
- }, 200)
- }
- const clearMousePosition = () => {
- clearTimeout(t)
- document.documentElement.style.removeProperty('--mouse-x')
- document.documentElement.style.removeProperty('--mouse-y')
- }
- const i = () => {
- r = (e) => {
- if (e.target.closest('.cursor-pointer')) {
- u(e)
- }
- }
- l = (e) => {
- if (e.target.closest('.cursor-pointer')) {
- clearMousePosition()
- }
- }
- document.addEventListener('mouseenter', r, true)
- document.addEventListener('mouseleave', l, true)
- }
- const d = () => {
- clearTimeout(t)
- if (r) document.removeEventListener('mouseenter', r, true)
- if (l) document.removeEventListener('mouseleave', l, true)
- r = null
- l = null
- }
- i()
- return d
- }
|