mirror of
https://github.com/ArthurDanjou/ui.git
synced 2026-01-31 04:07:56 +01:00
docs: improve ContextMenu example
This commit is contained in:
@@ -1,11 +1,12 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
const { x, y } = useMouse()
|
const { x, y } = useMouse()
|
||||||
|
const { y: windowY } = useWindowScroll()
|
||||||
|
|
||||||
const isOpen = ref(false)
|
const isOpen = ref(false)
|
||||||
const virtualElement = ref({ getBoundingClientRect: () => ({}) })
|
const virtualElement = ref({ getBoundingClientRect: () => ({}) })
|
||||||
|
|
||||||
function openContextMenu () {
|
function onContextMenu () {
|
||||||
const top = unref(y)
|
const top = unref(y) - unref(windowY)
|
||||||
const left = unref(x)
|
const left = unref(x)
|
||||||
|
|
||||||
virtualElement.value.getBoundingClientRect = () => ({
|
virtualElement.value.getBoundingClientRect = () => ({
|
||||||
@@ -20,8 +21,8 @@ function openContextMenu () {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div class="w-full" @contextmenu.prevent="openContextMenu">
|
<div class="w-full" @contextmenu.prevent="onContextMenu">
|
||||||
<Placeholder class="h-20 w-full flex items-center justify-center">
|
<Placeholder class="h-96 select-none w-full flex items-center justify-center">
|
||||||
Right click here
|
Right click here
|
||||||
</Placeholder>
|
</Placeholder>
|
||||||
|
|
||||||
|
|||||||
@@ -11,12 +11,13 @@ github: true
|
|||||||
```vue
|
```vue
|
||||||
<script setup>
|
<script setup>
|
||||||
const { x, y } = useMouse()
|
const { x, y } = useMouse()
|
||||||
|
const { y: windowY } = useWindowScroll()
|
||||||
|
|
||||||
const isOpen = ref(false)
|
const isOpen = ref(false)
|
||||||
const virtualElement = ref({ getBoundingClientRect: () => ({}) })
|
const virtualElement = ref({ getBoundingClientRect: () => ({}) })
|
||||||
|
|
||||||
function openContextMenu () {
|
function onContextMenu () {
|
||||||
const top = unref(y)
|
const top = unref(y) - unref(windowY)
|
||||||
const left = unref(x)
|
const left = unref(x)
|
||||||
|
|
||||||
virtualElement.value.getBoundingClientRect = () => ({
|
virtualElement.value.getBoundingClientRect = () => ({
|
||||||
@@ -31,7 +32,7 @@ function openContextMenu () {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div @contextmenu.prevent="openContextMenu">
|
<div @contextmenu.prevent="onContextMenu">
|
||||||
<UContextMenu v-model="isOpen" :virtual-element="virtualElement">
|
<UContextMenu v-model="isOpen" :virtual-element="virtualElement">
|
||||||
<!-- Content -->
|
<!-- Content -->
|
||||||
</UContextMenu>
|
</UContextMenu>
|
||||||
|
|||||||
Reference in New Issue
Block a user