Как определить, покинула ли мышь окно Angular? - PullRequest
0 голосов
/ 03 февраля 2020

Я хочу определить, вышла ли мышь из окна браузера, а не просто указать c div, поэтому не используется (mouseleave) et c. методы в HTML. Есть ли способ?

ОБНОВЛЕНИЕ:

ParentComponent:

<div class="parent" (dragover)="openDialogComponent()"></div>

@HostListener('window:dragleave') onMouseLeave() {
    console.log('leave window?');
}

Что на самом деле происходит: Когда файлы перетаскиваются через ParentComponent, открывается DialogComponent. Когда файлы перетаскиваются через DialogComponent, он закрывается, потому что покинул область ParentComponent, таким образом, давая всплывающий эффект всплывающему окну.

Что я хочу, чтобы произошло: Как вы закрыть DialogComponent, когда мышь покидает оба компонента - Parent и Dialog, или, другими словами, когда события мыши / перетаскивания покидают BROWSER / WHOLE WINDOW?

1 Ответ

0 голосов
/ 03 февраля 2020

Для этого вы можете использовать HostListener,

@HostListener('window:mouseleave', ['$event.target']) onMouseLeave() {
    // do something
}

Ключ - это событие DOM, которое директива слушает. Чтобы прослушать глобальные события, добавьте цель к имени события. Цель может быть окном, документом или телом.

См. Официальная документация .

...