我想测试一个执行html元素拖动的功能,但是我没有得到如何模拟鼠标按下功能的方法。
我想测试以下代码。
reposition(element: HTMLElement) {
var jacket = element.parentElement;
jacket.onmousedown = dragMouseDown;
var pos1, pos2, pos3, pos4;
function dragMouseDown(e) {
let strClasses: string = (element).getAttributeNode('class').textContent;
if (strClasses.includes('ao-selected') && strClasses.includes('ao-reposition')) {
e = e || window.event;
e.preventDefault();
pos3 = e.clientX;
pos4 = e.clientY;
document.onmouseup = closeDragElement;
document.onmousemove = elementDrag;
}
}
function elementDrag(e) {
e = e || window.event;
e.preventDefault();
pos1 = pos3 - e.clientX;
pos2 = pos4 - e.clientY;
pos3 = e.clientX;
pos4 = e.clientY;
jacket.style.top = (jacket.offsetTop - pos2) + "px";
jacket.style.left = (jacket.offsetLeft - pos1) + "px";
}
function closeDragElement(e) {
document.removeEventListener('onmousedown', dragMouseDown), false;
document.onmousemove = null;
}
}