const target = document.querySelector('.target');
document.querySelector('main')
.addEventListener('mousemove', (e) => {
if (e.clientY > 60) {
target.style.top = (e.clientY - 25) + 'px';
}
target.style.left = (e.clientX - 25) + 'px';
});
target.addEventListener('mousedown', () => {
console.log('mouse down');
})
const butt = document.querySelector('.sim-move');
butt.addEventListener('click', () => {
let evt = new MouseEvent("mousemove", {
clientX: 150,
clientY: 5,
bubbles: true,
cancelable: true,
view: window
});
let canceled = !target.dispatchEvent(evt);
});
const butt1 = document.querySelector('.sim-down');
butt1.addEventListener('click', () => {
triggerMouseEvent(target, 'mousedown');
});
function triggerMouseEvent (node, eventType) {
var clickEvent = document.createEvent ('MouseEvents');
clickEvent.initEvent (eventType, true, true);
node.dispatchEvent (clickEvent);
}
html, body, main {
height: 100%;
padding: 0;
margin: 0;
}
body {
margin: 20px;
}
main {
display: block;
border: 1px solid #000;
height: calc(100% - 42px);
}
div {
position: absolute;
top: 50%;
left: 50%;
width: 50px;
height: 50px;
background-color: green;
}
<button class="sim-move">Simulate mousemove</button>
<button class="sim-down">Simulate mousedown</button>
<main>
<div class='target'></div>
</main>