Рост div от позиции курсора вверх и влево

Есть кастомное контекстное меню, надо чтобы оно росло от позиции курсора вверх и влево, а не вниз и вправо.

Сниппет с примером не отрабатывает, видимо из-за event.pageX =((

function reset_menu() {
  $("div").hide();
}

function custom_menu() {
  $left = event.pageX;
  $top = event.pageY;
  $("div").css({
    "top": $top,
    "left": $left
  });
  $(".context").hide().slideDown(100);
}
div {
  display: none;
  position: absolute;
  background: lightblue;
  width: 100px;
  height: 200px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<body onclick="custom_menu();" ondblclick="reset_menu();">
  <div></div>
</body>


Ответы (1 шт):

Автор решения: Bear Vorkuta

Ширину и высоту элемента вычитать надо из координат

https://jsfiddle.net/u2y9x6j1/

function reset_menu() {
  $("div").hide();
}

function custom_menu() {

  $left = event.pageX -$("div").width();
  $top = event.pageY - $("div").height();
  $("div").css({
    "top": $top,
    "left": $left,
    "display": "block"
  });  
  $(".context").hide().slideDown(100);
}
document.onclick = () => custom_menu()
document.ondblclick = () => reset_menu();
div {
  display: none;
  position: absolute;
  background: lightblue;
  width: 100px;
  height: 200px;  
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<body>
  <div></div>
</body>

→ Ссылка