Расположите div в зависимости от положения мыши - PullRequest
0 голосов
/ 08 октября 2018

Мне нужно отобразить всплывающее окно, положение которого соответствует координатам нажатой мыши в угловых 4. Прекрасным примером было бы создание событий в календаре Google

1 Ответ

0 голосов
/ 08 октября 2018

В вашем HTML:

<div class="click-container" (click)="onMouseClick($event)"></div>

В вашем TS:

onMouseClick(e: MouseEvent) {
  console.log(e);
  //e.pageX will give you offset from left screen border
  //e.pageY will give you offset from top screen border

  //determine popup X and Y position to ensure it is not clipped by screen borders
  const popupHeight = 400, // hardcode these values
    popupWidth = 300;    // or compute them dynamically

  let popupXPosition,
      popupYPosition

  if(e.clientX + popupWidth > window.innerWidth){
      popupXPosition = e.pageX - popupWidth;
  }else{
      popupXPosition = e.pageX;
  }

  if(e.clientY + popupHeight > window.innerHeight){
      popupYPosition = e.pageY - popupHeight;
  }else{
      popupYPosition = e.pageY;
  }
}

Затем вам нужно инициализировать всплывающий компонент с соответствующим кодом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...