MCPcopy Create free account
hub / github.com/violentmonkey/violentmonkey / onDragStart

Function onDragStart

src/options/utils/dragging.js:103–128  ·  view source on GitHub ↗
(e)

Source from the content-addressed store, hash-verified

101}
102
103function onDragStart(e) {
104 if (!scriptFromEvent(e)) return;
105 if (e.cancelable) e.preventDefault();
106 const { clientX: x, clientY: y } = e.touches?.[0] || e;
107 const rect = original.getBoundingClientRect();
108 const parentRect = parent.getBoundingClientRect();
109 dragged = original.cloneNode(true);
110 elements = parent.children::[].filter(el => el.style.display !== 'none');
111 index = elements.indexOf(original);
112 lastIndex = index;
113 elements.splice(index, 1);
114 height = rect.height;
115 offsetX = x - rect.left;
116 offsetY = y - rect.top;
117 scrollEdgeTop = parentRect.top + SCROLL_GAP;
118 scrollEdgeBottom = parentRect.bottom - SCROLL_GAP;
119 xyCache = {};
120 original.classList.add('dragging-placeholder');
121 dragged.classList.add('dragging');
122 dragged.style.transform = `translate(${rect.left}px, ${rect.top}px)`;
123 dragged.style.width = `${rect.width}px`;
124 parent.appendChild(dragged);
125 if (isTouch) parent.insertAdjacentElement('afterBegin', noScroll);
126 addEventListener(eventNames.move, onDragMouseMove);
127 addEventListener(eventNames.end, onDragMouseUp);
128}
129
130function onDragMouseMove(e) {
131 const { clientX: x, clientY: y, target } = e.touches?.[0] || e;

Callers 1

onTouchMoveDetectFunction · 0.85

Calls 4

scriptFromEventFunction · 0.85
preventDefaultMethod · 0.80
filterMethod · 0.80
addMethod · 0.80

Tested by

no test coverage detected