Vue + element控制鼠标右键菜单
1、在页面元素绑定contextmenu事件
元素中使用@contextmenu.prevent.native="openMenu($event)"绑定事件
<template><span size="medium" @contextmenu.prevent.native="openMenu($event)" />
</template>
2、在页面编写右键菜单内容
<ul v-show="visible" :style="{left:left+\'px\',top:top+\'px\'}" class="contextmenu"><li>历史记录</li>
</ul>
3、在data()中定义需要的变量属性
data() {return {
visible: false,
top: 0,
left: 0
}
}
4、监控visible的变化,来触发关闭右键菜单,调用关闭菜单的方法
watch: {visible(value) {
if (value) {
document.body.addEventListener(\'click\', this.closeMenu)
} else {
document.body.removeEventListener(\'click\', this.closeMenu)
}
}
},
5、在method中定义openMenu、closeMenu的两个方法
openMenu(e) {const menuMinWidth = 105
const offsetLeft = this.$el.getBoundingClientRect().left // container margin left
const offsetWidth = this.$el.offsetWidth // container width
const maxLeft = offsetWidth - menuMinWidth // left boundary
const left = e.clientX - offsetLeft // 15: margin right
if (left > maxLeft) {
this.left = maxLeft
} else {
this.left = left
}
this.top = e.clientY - 60 // fix 位置bug
this.visible = true
},
closeMenu() {
this.visible = false
}
以上是 Vue + element控制鼠标右键菜单 的全部内容, 来源链接: utcz.com/z/375735.html