diff --git a/samples/calc-02/index.js b/samples/calc-02/index.js index 46f7290..cf4ccef 100644 --- a/samples/calc-02/index.js +++ b/samples/calc-02/index.js @@ -343,13 +343,16 @@ function closeModeMenu() { } } -function openModeMenu() { - closeModeMenu(); +function toggleModeMenu() { + if (modeMenuEl) { + closeModeMenu(); + return; + } + closeConstMenu(); const rect = modeButton.getBoundingClientRect(); modeMenuEl = document.createElement('div'); modeMenuEl.className = 'mode-menu'; modeMenuEl.style.top = `${rect.bottom + 6 + window.scrollY}px`; - modeMenuEl.style.left = `${rect.left + window.scrollX}px`; modeOptions.forEach((mode) => { const button = document.createElement('button'); button.type = 'button'; @@ -370,7 +373,7 @@ function openModeMenu() { modeButton.addEventListener('click', (event) => { event.stopPropagation(); - openModeMenu(); + toggleModeMenu(); }); window.addEventListener('resize', () => { @@ -432,8 +435,12 @@ function closeConstMenu() { } } -function openConstMenu() { - closeConstMenu(); +function toggleConstMenu() { + if (constMenuEl) { + closeConstMenu(); + return; + } + closeModeMenu(); const rect = constButton.getBoundingClientRect(); constMenuEl = document.createElement('div'); constMenuEl.className = 'mode-menu'; @@ -461,7 +468,7 @@ function openConstMenu() { constButton.addEventListener('click', (event) => { event.stopPropagation(); - openConstMenu(); + toggleConstMenu(); }); leftButton.addEventListener('click', () => {});