popover.ts 751 B

12345678910111213141516171819
  1. export function setupPopover() {
  2. const main = document.querySelector('main')!;
  3. const popover = document.querySelector('#popover') as HTMLElement;
  4. main.addEventListener('mouseover', (event) => {
  5. const target = event.target as HTMLElement;
  6. if (target.dataset.tooltip) {
  7. popover.textContent = target.dataset.tooltip;
  8. const rect = target.getBoundingClientRect();
  9. popover.style.left = `${rect.left}px`;
  10. popover.style.top = `${rect.bottom}px`;
  11. popover.showPopover();
  12. }
  13. });
  14. main.addEventListener('mouseout', (event) => {
  15. const target = event.target as HTMLElement;
  16. if (target.dataset.tooltip)
  17. popover.hidePopover();
  18. });
  19. }