// jshint esversion: 8 // release 24-04-2022 const nodrag_tds = ['input', 'select', 'a']; const nodrag_cls = "nodrag"; var UaDrag = function (e) { const drag = function (element) { let pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0; const dragMouseDown = function (e) { e = e || window.event; let t = e.target; t = t || null; if (!t) return; if (nodrag_tds.includes(t.tagName.toLowerCase())) return; if (t.classList.contains(nodrag_cls)) return; e.preventDefault(); //e.stopImmediatePropagation(); pos3 = e.clientX; pos4 = e.clientY; document.onmouseup = closeDragElement; document.onmousemove = elementDrag; }; const elementDrag = function (e) { e = e || window.event; //e.stopImmediatePropagation(); e.preventDefault(); pos1 = pos3 - e.clientX; pos2 = pos4 - e.clientY; pos3 = e.clientX; pos4 = e.clientY; element.style.top = (element.offsetTop - pos2) + "px"; element.style.left = (element.offsetLeft - pos1) + "px"; }; const closeDragElement = function () { document.onmouseup = null; document.onmousemove = null; }; element.onmousedown = dragMouseDown; }; return drag(e); };