aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/Layout.mjs
diff options
context:
space:
mode:
authorHsieh Chin Fan <pham@topo.tw>2024-09-22 19:14:07 +0800
committerHsieh Chin Fan <pham@topo.tw>2024-09-22 19:14:07 +0800
commite7715f530a25cd923581dfbbb847e22793f5cde3 (patch)
treea5ec631689097f5942d799be1d91ea329cd3c52e /src/Layout.mjs
parent99f80919d6a5546425c8b7418c4e874f8c99e69a (diff)
refactor: logic about overlap of draggable block
Diffstat (limited to 'src/Layout.mjs')
-rw-r--r--src/Layout.mjs13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/Layout.mjs b/src/Layout.mjs
index 789027b..d0fde0f 100644
--- a/src/Layout.mjs
+++ b/src/Layout.mjs
@@ -59,6 +59,13 @@ export class Overlay extends Layout {
59 } 59 }
60 60
61 addDraggable = (element) => { 61 addDraggable = (element) => {
62 // Make sure current element always on top
63 const siblings = Array.from(element.parentElement?.querySelectorAll(':scope > *') ?? [])
64 element.onmouseover = () => {
65 siblings.forEach(e => e.style.removeProperty('z-index'))
66 element.style.zIndex = '9000'
67 }
68
62 // Add draggable part 69 // Add draggable part
63 const draggablePart = document.createElement('div') 70 const draggablePart = document.createElement('div')
64 element.appendChild(draggablePart) 71 element.appendChild(draggablePart)
@@ -83,18 +90,14 @@ export class Overlay extends Layout {
83 90
84 // FIXME use pure CSS to hide utils 91 // FIXME use pure CSS to hide utils
85 const utils = element.querySelector('.utils') 92 const utils = element.querySelector('.utils')
86 const siblings = Array.from(element.parentElement.querySelectorAll(':scope > *'))
87 draggable.onDragStart = () => { 93 draggable.onDragStart = () => {
88 utils.style.opacity = 0 94 utils.style.display = 'none'
89 element.classList.add('drag') 95 element.classList.add('drag')
90 // Remove z-index from previous dragged
91 siblings.forEach(e => e.style.removeProperty('z-index'))
92 } 96 }
93 97
94 draggable.onDragEnd = () => { 98 draggable.onDragEnd = () => {
95 utils.style = '' 99 utils.style = ''
96 element.classList.remove('drag') 100 element.classList.remove('drag')
97 // Ensuer last dragged block always on top
98 element.style.zIndex = '9000' 101 element.style.zIndex = '9000'
99 } 102 }
100 103