原生Vue 实现右键菜单组件功能
程序员文章站
2022-04-09 16:24:35
vue 原生实现右键菜单组件, 零依赖
快速安装
npm install vue-contextmenujs
使用
测试中使用的是 element-ui 图标...
vue 原生实现右键菜单组件, 零依赖
快速安装
npm install vue-contextmenujs
使用
测试中使用的是 element-ui 图标
import contextmenu from "vue-contextmenujs" vue.use(contextmenu); <template> <div id="app" style="width:100vw;height:100vh" @contextmenu.prevent="oncontextmenu"></div> </template> <script> export default { methods: { oncontextmenu(event) { this.$contextmenu({ items: [ { label: "返回(b)", onclick: () => { this.message = "返回(b)"; console.log("返回(b)"); } }, { label: "前进(f)", disabled: true }, { label: "重新加载(r)", divided: true, icon: "el-icon-refresh" }, { label: "另存为(a)..." }, { label: "打印(p)...", icon: "el-icon-printer" }, { label: "投射(c)...", divided: true }, { label: "使用网页翻译(t)", divided: true, minwidth: 0, children: [{ label: "翻译成简体中文" }, { label: "翻译成繁体中文" }] }, { label: "截取网页(r)", minwidth: 0, children: [ { label: "截取可视化区域", onclick: () => { this.message = "截取可视化区域"; console.log("截取可视化区域"); } }, { label: "截取全屏" } ] }, { label: "查看网页源代码(v)", icon: "el-icon-view" }, { label: "检查(n)" } ], event, customclass: "class-a", zindex: 3, minwidth: 230 }); return false; } } }; </script>
ps:下面看下vue点击菜单以外区域,隐藏菜单操作
data() { return { menushow: false //v-show标识隐藏显示 } }, mounted (){ let _this = this; document.addeventlistener('click', function (e) { // 下面这句代码是获取 点击的区域是否包含你的菜单,如果包含,说明点击的是菜单以外,不包含则为菜单以内 let flag = e.target.contains(document.getelementsbyclassname('menu-class')[0]) console.log(flag) if(!flag) return _this.menushow = false }) }
总结
以上所述是小编给大家介绍的原生vue 实现右键菜单组件功能,希望对大家有所帮助
上一篇: vue实现随机验证码功能(完整代码)
下一篇: Vue 实现简易多行滚动"弹幕"效果