原生Vue 实现右键菜单组件功能


Posted in Javascript onDecember 16, 2019

Vue 原生实现右键菜单组件, 零依赖

原生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 实现右键菜单组件功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
jquery1.83 之前所有与异步列队相关的模块详细介绍
Nov 13 Javascript
网页右键ie不支持event.preventDefault和event.returnValue (需要加window)
Feb 22 Javascript
window.opener用法和用途实例介绍
Aug 19 Javascript
js实现简单的星级选择器提交效果适用于评论等
Oct 18 Javascript
jQuery表格排序组件-tablesorter使用示例
May 26 Javascript
JavaScript设计模式之单例模式实例
Sep 24 Javascript
AngularJs基于角色的前端访问控制的实现
Nov 07 Javascript
Node.JS中事件轮询(Event Loop)的解析
Feb 25 Javascript
Three.js实现浏览器变动时进行自适应的方法
Sep 26 Javascript
react实现一个优雅的图片占位模块组件详解
Oct 30 Javascript
jquery实现拖拽添加元素功能
Dec 01 jQuery
js基于div丝滑实现贝塞尔曲线
Sep 23 Javascript
axios如何取消重复无用的请求详解
Dec 15 #Javascript
Vue在chrome44偶现点击子元素事件无法冒泡的解决方法
Dec 15 #Javascript
Angular6项目打包优化的实现方法
Dec 15 #Javascript
vue+elementUI组件table实现前端分页功能
Nov 15 #Javascript
Vue+ElementUI table实现表格分页
Dec 14 #Javascript
微信小程序跨页面传递data数据方法解析
Dec 13 #Javascript
微信小程序swiper使用网络图片不显示问题解决
Dec 13 #Javascript
You might like
用jscript实现列出安装的软件列表
2007/06/18 Javascript
javascript 异步页面查询实现代码(asp.net)
2010/05/26 Javascript
js性能优化 如何更快速加载你的JavaScript页面
2012/03/17 Javascript
js实现收缩菜单效果实例代码
2013/10/30 Javascript
HTTP 304错误的详细讲解
2013/11/13 Javascript
JS父页面与子页面相互传值方法
2014/03/05 Javascript
jQuery使用元素属性attr赋值详解
2015/02/27 Javascript
JavaScript中扩展Array contains方法实例
2020/08/23 Javascript
jQuery中使用each处理json数据
2015/04/23 Javascript
动态加载jQuery的方法
2015/06/16 Javascript
关于jquery中动态增加select,事件无效的快速解决方法
2016/08/29 Javascript
js获取指定时间的前几秒
2017/04/05 Javascript
jQuery EasyUI的TreeGrid查询功能实现方法
2017/08/08 jQuery
AngularJs ng-change事件/指令的用法小结
2017/11/01 Javascript
React中的refs的使用教程
2018/02/13 Javascript
详解Vue.js中.native修饰符
2018/04/24 Javascript
解决修复npm安装全局模块权限的问题
2018/05/17 Javascript
Angular使用cli生成自定义文件、组件的方法
2018/09/04 Javascript
[38:27]完美世界DOTA2联赛PWL S2 Forest vs FTD.C 第二场 11.26
2020/11/30 DOTA
[46:49]完美世界DOTA2联赛PWL S3 access vs Rebirth 第二场 12.19
2020/12/24 DOTA
Python3解决棋盘覆盖问题的方法示例
2017/12/07 Python
详解Python中的动态属性和特性
2018/04/07 Python
Python实现处理逆波兰表达式示例
2018/07/30 Python
对python csv模块配置分隔符和引用符详解
2018/12/12 Python
检测python爬虫时是否代理ip伪装成功的方法
2019/07/12 Python
python3通过qq邮箱发送邮件以及附件
2020/05/20 Python
移动端开发HTML5页面点击按钮后出现闪烁或黑色背景的解决办法
2018/09/19 HTML / CSS
Weekendesk意大利:探索多种引人入胜的周末主题
2016/10/14 全球购物
荷兰超市:DEEN
2018/03/14 全球购物
以工厂直接定价的传奇性能:Ben Hogan Golf
2019/01/04 全球购物
网友共享的几个面试题关于Java和Unix等方面的
2016/09/08 面试题
毕业生的自我鉴定
2013/10/29 职场文书
财务部副经理岗位职责范本
2014/06/17 职场文书
投诉信范文
2015/07/02 职场文书
Jupyter notebook 不自动弹出网页的解决方案
2021/05/21 Python
Go语言实现一个简单的并发聊天室的项目实战
2022/03/18 Golang