Обратите внимание на следующий код:
const dragSource = document.getElementById("dragSource");
const result = document.getElementById("result");
let count = 0;
document.onpointerleave = e =>
{
result.innerHTML="count=" + count++;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
</head>
<body>
<label id="dragSource" style="background-color: aqua;" draggable="true">
Drag me!
</label>
<div id="result"></div>
<script src="index.js"></script>
</body>
</html>
Как видите, если мышь выходит за пределы окна браузера, счетчик увеличивается. Проблема в том, когда вы перетаскиваете этикетку. В этом случае событие pointerleave
не запускается, когда мышь выходит за пределы окна. Как мне определить, что мышь выходит за пределы окна в этом случае?
Стоит упомянуть, что если вы перетащите метку из окна и отпустите ее (например, на рабочем столе), затем переместите мышь внутри окна браузера, pointerleave
срабатывает !!! Как это происходит? !!