aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/Layout.mjs22
-rw-r--r--src/css/dumbymap.css15
2 files changed, 10 insertions, 27 deletions
diff --git a/src/Layout.mjs b/src/Layout.mjs
index 04acc3d..8c6a8ea 100644
--- a/src/Layout.mjs
+++ b/src/Layout.mjs
@@ -125,15 +125,12 @@ const addDraggable = (element, { snap, left, top } = {}) => {
125 }) 125 })
126 126
127 // FIXME use pure CSS to hide utils 127 // FIXME use pure CSS to hide utils
128 const utils = element.querySelector('.utils')
129 draggable.onDragStart = () => { 128 draggable.onDragStart = () => {
130 if (utils) utils.style.display = 'none' 129 element.classList.add('dragging')
131 element.classList.add('drag')
132 } 130 }
133 131
134 draggable.onDragEnd = () => { 132 draggable.onDragEnd = () => {
135 if (utils) utils.style = '' 133 element.classList.remove('dragging')
136 element.classList.remove('drag')
137 element.style.zIndex = '9000' 134 element.style.zIndex = '9000'
138 } 135 }
139 136
@@ -244,24 +241,9 @@ export class Overlay extends Layout {
244 }, 241 },
245 })) 242 }))
246 243
247 // Trivial case:
248 // This hack make sure utils remains at the same place even when wrapper resized
249 // Prevent DOMRect changes when user clicking plus/minus button many times
250 const utils = wrapper.querySelector('.utils')
251 utils.onmouseover = () => {
252 const { left, top } = utils.getBoundingClientRect()
253 utils.style.cssText = `visibility: visible; z-index: 9000; position: fixed; transition: unset; left: ${left}px; top: ${top}px;`
254 document.body.appendChild(utils)
255 }
256 utils.onmouseout = () => {
257 wrapper.appendChild(utils)
258 utils.style.cssText = ''
259 }
260
261 // Close button 244 // Close button
262 wrapper.querySelector('#close').onclick = () => { 245 wrapper.querySelector('#close').onclick = () => {
263 block.classList.remove('focus') 246 block.classList.remove('focus')
264 utils.style.cssText = ''
265 } 247 }
266 // Plus/Minus font-size of content 248 // Plus/Minus font-size of content
267 wrapper.querySelector('#plus-font-size').onclick = () => { 249 wrapper.querySelector('#plus-font-size').onclick = () => {
diff --git a/src/css/dumbymap.css b/src/css/dumbymap.css
index cc2d1ef..dd50f2b 100644
--- a/src/css/dumbymap.css
+++ b/src/css/dumbymap.css
@@ -416,7 +416,6 @@ root {
416 transition: 416 transition:
417 visibility .3s ease-out, 417 visibility .3s ease-out,
418 opacity .3s ease-out; 418 opacity .3s ease-out;
419
420 visibility: hidden; 419 visibility: hidden;
421 opacity: 0; 420 opacity: 0;
422 421
@@ -554,7 +553,14 @@ root {
554 transform: translate(0, -0.6rem); 553 transform: translate(0, -0.6rem);
555 } 554 }
556 555
557 &.drag, 556 &:not(.dragging):has(.draggable-part:hover) {
557 .utils {
558 visibility: visible;
559 opacity: 1;
560 }
561 }
562
563 &.dragging,
558 &:has(.draggable-part:hover) { 564 &:has(.draggable-part:hover) {
559 .handle { 565 .handle {
560 background: #e1e1e1; 566 background: #e1e1e1;
@@ -562,11 +568,6 @@ root {
562 transform: unset; 568 transform: unset;
563 } 569 }
564 570
565 .utils {
566 visibility: visible;
567 opacity: 1;
568 }
569
570 > *:not(.draggable-part, .utils) { 571 > *:not(.draggable-part, .utils) {
571 color: gray; 572 color: gray;
572 573