Skip to content

Commit 95b79d9

Browse files
committed
Opacity fix
1 parent a7be394 commit 95b79d9

File tree

2 files changed

+16
-68
lines changed

2 files changed

+16
-68
lines changed

src/mapml.css

+1-1
Original file line numberDiff line numberDiff line change
@@ -355,6 +355,6 @@ summary {
355355
visibility: unset!important;
356356
}
357357

358-
.mapml-drag-active {
358+
.mapml-draggable {
359359
cursor: row-resize;
360360
}

src/mapml/layers/MapLayer.js

+15-67
Original file line numberDiff line numberDiff line change
@@ -524,14 +524,13 @@ export var MapMLLayer = L.Layer.extend({
524524
opacity.value = this._container.style.opacity || '1.0';
525525

526526
fieldset.setAttribute("aria-grabbed", "false");
527-
//fieldset.draggable = true;
528527

529-
fieldset.onmousedown = (e) => {
530-
e.preventDefault();
531-
if(e.target.tagName.toLowerCase() === "input") return;
528+
fieldset.onmousedown = (downEvent) => {
529+
if(downEvent.target.tagName.toLowerCase() === "input") return;
530+
downEvent.preventDefault();
532531
let control = fieldset,
533532
controls = fieldset.parentNode,
534-
moving = false, yPos = e.clientY;
533+
moving = false, yPos = downEvent.clientY;
535534

536535
document.body.onmousemove = (moveEvent) => {
537536
moveEvent.preventDefault();
@@ -543,14 +542,17 @@ export var MapMLLayer = L.Layer.extend({
543542
if(controls && !moving ||
544543
controls.getBoundingClientRect().top > control.getBoundingClientRect().top ||
545544
controls.getBoundingClientRect().bottom < control.getBoundingClientRect().bottom) return;
546-
545+
546+
for(let c of controls.children){
547+
c.querySelector("summary").classList.add("mapml-draggable");
548+
}
549+
547550
let x = moveEvent.clientX, y = moveEvent.clientY,
548551
elementAt = root.elementFromPoint(x, y),
549552
swapControl = !elementAt || !elementAt.closest("fieldset") ? control : elementAt.closest("fieldset");
550553

551554
swapControl = offset <= swapControl.offsetHeight ? control : swapControl;
552-
553-
control.querySelector("summary").classList.add("mapml-drag-active");
555+
554556
control.setAttribute("aria-grabbed", 'true');
555557
control.setAttribute("aria-dropeffect", "move");
556558
if(swapControl && controls === swapControl.parentNode){
@@ -561,79 +563,25 @@ export var MapMLLayer = L.Layer.extend({
561563
};
562564

563565
document.body.onmouseup = () => {
564-
control.querySelector("summary").classList.remove("mapml-drag-active");
565566
control.setAttribute("aria-grabbed", "false");
566567
control.removeAttribute("aria-dropeffect");
567568
let controlsElems = controls.children,
568-
layers = map.getPane("overlayPane").children,
569569
zIndex = 1;
570570
for(let c of controlsElems){
571571
let layerEl = c.querySelector("span").layer._layerEl;
572+
572573
layerEl.setAttribute("data-moving","");
573574
viewer.insertAdjacentElement("beforeend", layerEl);
574575
layerEl.removeAttribute("data-moving");
575-
576-
for (let layer of layers){
577-
if(c.querySelector("span").layer._container == layer){
578-
layer.style["z-index"] = zIndex;
579-
zIndex++;
580-
}
581-
}
576+
577+
c.querySelector("summary").classList.remove("mapml-draggable");
578+
layerEl._layer.setZIndex(zIndex);
579+
zIndex++;
582580
}
583581
document.body.onmousemove = document.body.onmouseup = null;
584582
};
585583
};
586584

587-
//old version of dragging
588-
/* fieldset.onmouseup = (e) => {
589-
//e.target.closest("fieldset").draggable = true;
590-
};
591-
592-
fieldset.ondrag = (e) => {
593-
e.preventDefault();
594-
let control = e.target,
595-
controls = e.target.parentNode,
596-
x = e.clientX, y = e.clientY,
597-
elementAt = root.elementFromPoint(x, y),
598-
swapControl = !elementAt || !elementAt.closest("fieldset") || elementAt.closest("fieldset").draggable === false ? control : elementAt.closest("fieldset");
599-
600-
// Fixes flickering by only moving element when there is enough space
601-
let offset = e.offsetY < 0 ? Math.abs(e.offsetY*2) : Math.abs(e.offsetY);
602-
swapControl = offset <= swapControl.offsetHeight ? control : swapControl;
603-
604-
control.style.opacity = "0";
605-
control.classList.add("leaflet-dragging");
606-
control.setAttribute("aria-grabbed", 'true');
607-
control.setAttribute("aria-dropeffect", "move");
608-
if(swapControl && controls === swapControl.parentNode){
609-
swapControl = swapControl !== control.nextSibling? swapControl : swapControl.nextSibling;
610-
controls.insertBefore(control, swapControl);
611-
}
612-
};
613-
fieldset.ondragend = (e) => {
614-
e.preventDefault();
615-
e.target.style.opacity = null;
616-
e.target.classList.remove("leaflet-dragging");
617-
e.target.setAttribute("aria-grabbed", "false");
618-
e.target.removeAttribute("aria-dropeffect");
619-
let controls = e.target.parentNode.children,
620-
layers = map.getPane("overlayPane").children,
621-
zIndex = 1;
622-
for(let control of controls){
623-
let layerEl = control.querySelector("span").layer._layerEl;
624-
layerEl.setAttribute("data-moving","");
625-
viewer.insertAdjacentElement("beforeend", layerEl);
626-
layerEl.removeAttribute("data-moving");
627-
628-
for (let layer of layers){
629-
if(control.querySelector("span").layer._container == layer){
630-
layer.style["z-index"] = zIndex;
631-
zIndex++;
632-
}
633-
}
634-
}
635-
}; */
636-
637585
L.DomEvent.on(opacity,'change', this._changeOpacity, this);
638586

639587
fieldset.appendChild(details);

0 commit comments

Comments
 (0)