Дротик: позиция onContextMenu смещена

У меня проблема с меню мыши правой кнопкой мыши. У моего веб-приложения есть раздел навигации, раздел панели инструментов и раздел содержимого ViewView. div contentView показывает все мое содержимое / работает как веб внутри web /. Итак, здесь начинается проблема. Я создал onContextMenu на своем столе следующим образом:

tr.onContextMenu.listen((e) {
   contextMenu.style.display = 'block';
   contextMenu.style.left = "${e.page.x}px";
   contextMenu.style.top = "${e.page.y}px";
   selectedRow.clear();
   selectedRow.add(tr);
}); 

Когда я нажимаю правую кнопку, он занимает позицию из всего окна, но когда он показывает контекстное меню, позиция основывается на элементе contentView. Например, если моя позиция мыши равна (200 200), это похоже на (wholepage.0+200,wholepage.0+300), а позиция контекстного меню будет около (400 500), что похоже на (contentView div.0+200,contentView div.0+300). Так, как я могу показать свое контекстное меню, где щелкают мышью?

2 ответа

Решение

Ну, я просто изменился ${e.page.x}px; ${e.page.y}px; в ${e.layer.x}px; ${e.layer.y}px; и теперь это работает.

Пытаться

contextMenu.style.left = "${e.client.x}px";
contextMenu.style.top = "${e.client.y}px";

и не забывайте абсолютное позиционирование.

С уважением Роберт

Другие вопросы по тегам