css переполнение: скрыто, потому что указатель мыши layerX и layerY неправильный - PullRequest
0 голосов
/ 24 января 2020

Я создаю контекстное меню, используя Vuejs @contextmenu.prevent api. Но при нажатии на элемент со стилем overflow:hidden это приводит к неправильному положению event.layerX & event.layerY.

new Vue({ 
  el:'#app', 
  data: { 
    menuStyle: { top: '0px', left: '0px' },
    menuOpen:false 
  }, 
  methods: { 
    onContextMenu(e){ 
      console.log('contextmenuevent',e) 
      this.menuStyle = {
        top: `${e.layerY}px`,
        left: `${e.layerX}px`
      }
      this.menuOpen = true
    } 
  } 
})
<html>
  <body>
    <div id="app" class="flex items-center justify-center h-screen">
      <div
        id="item"
        class="p-8 bg-green-200 flex items-center"
        @contextmenu.prevent="onContextMenu"
      >
        <div class="w-20 bg-red-200 truncate p-2">
          Click me lorem ipsum dolor sit amet
        </div>
        <div class="non-overflow">Non overflow</div>
      </div>
      <div
        v-if="menuOpen"
        id="menu"
        :style="menuStyle"
        class="bg-white shadow p-4 absolute absolute"
      >
        this is menu
        <button @click="menuOpen = false" class="bg-red-200 p-1">close</button>
      </div>
    </div>
  </body>
</html>

Демо: https://codepen.io/showcheap/pen/YzPBmgp

Примечание: я использую попутный ветер css для укладки

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