mirror of
https://gitlab.com/lecarore/breakout71.git
synced 2025-04-27 15:36:16 -04:00
40 lines
1.2 KiB
TypeScript
40 lines
1.2 KiB
TypeScript
![]() |
import {isOptionOn} from "./options";
|
||
|
|
||
|
export function setupTooltips() {
|
||
|
const tooltip = document.getElementById('tooltip') as HTMLDivElement
|
||
|
if (isOptionOn('mobile-mode')) {
|
||
|
tooltip.style.display = 'none';
|
||
|
return
|
||
|
}
|
||
|
|
||
|
function updateTooltipPosition(e:MouseEvent){
|
||
|
tooltip.style.transform=`translate(${e.clientX}px,${e.clientY + 20}px) `+(e.clientX > window.innerWidth / 2 ? ' translate(-100%,0)':'')
|
||
|
}
|
||
|
|
||
|
document.body.addEventListener('mouseenter', (e:MouseEvent) => {
|
||
|
let parent: HTMLElement | null = e.target as HTMLElement
|
||
|
while (parent && !parent.hasAttribute('data-tooltip')) {
|
||
|
parent = parent.parentElement
|
||
|
}
|
||
|
if (parent?.hasAttribute('data-tooltip')) {
|
||
|
tooltip.innerHTML = parent?.getAttribute('data-tooltip')
|
||
|
tooltip.style.display = '';
|
||
|
updateTooltipPosition(e)
|
||
|
}else{
|
||
|
|
||
|
tooltip.style.display = 'none';
|
||
|
}
|
||
|
}, true)
|
||
|
document.body.addEventListener('mousemove', e => {
|
||
|
if (!tooltip.style.display) {
|
||
|
updateTooltipPosition(e)
|
||
|
}
|
||
|
}, true)
|
||
|
document.body.addEventListener('mouseleave', e => {
|
||
|
// tooltip.style.display = 'none';
|
||
|
}, true)
|
||
|
|
||
|
}
|
||
|
|
||
|
|