From acad0593c6971a693078eeeb4fb15f278c427fa9 Mon Sep 17 00:00:00 2001 From: Hsieh Chin Fan Date: Tue, 1 Oct 2024 16:31:39 +0800 Subject: fix: set menu position relative to click need to calculate offset of parent element --- src/dumbymap.mjs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/dumbymap.mjs') diff --git a/src/dumbymap.mjs b/src/dumbymap.mjs index 2a6f332..cb528cd 100644 --- a/src/dumbymap.mjs +++ b/src/dumbymap.mjs @@ -462,12 +462,15 @@ export const generateMaps = (container, { delay, mapCallback }) => { // Menu {{{ const menu = document.createElement('div'); menu.className = 'menu'; + menu.style.display = 'none'; menu.onclick = () => (menu.style.display = 'none'); container.appendChild(menu); // Menu Items container.oncontextmenu = e => { menu.replaceChildren(); + menu.style.display = 'block'; + menu.style.cssText = `left: ${e.x - menu.offsetParent.offsetLeft + 10}px; top: ${e.y - menu.offsetParent.offsetTop + 5}px;`; e.preventDefault(); // GeoLinks @@ -476,7 +479,6 @@ export const generateMaps = (container, { delay, mapCallback }) => { const range = selection.getRangeAt(0); menu.appendChild(menuItem.addGeoLink(dumbymap, range)); } - menu.style.cssText = `overflow: visible; display: block; left: ${e.clientX + 10}px; top: ${e.clientY + 5}px;`; const map = e.target.closest('.mapclay'); if (map?.renderer?.results) { -- cgit v1.2.3-70-g09d2