原生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 相关文章推荐
JS解密入门之凭直觉解
Jun 25 Javascript
html中使用javascript调用本地程序(exe、doc等)实现代码
Apr 26 Javascript
对js关键字命名的疑问介绍
Apr 25 Javascript
node.js中的buffer.toJSON方法使用说明
Dec 14 Javascript
一系列Bootstrap导航条使用方法分享
Apr 29 Javascript
BootStrap智能表单实战系列(六)表单编辑页面的数据绑定
Jun 13 Javascript
分分钟玩转Vue.js组件
Oct 25 Javascript
jQuery实现模拟flash头像裁切上传功能示例
Dec 11 Javascript
小程序云函数调用API接口的方法
May 17 Javascript
js实现页面多个日期时间倒计时效果
Jun 20 Javascript
layui 实现表格某一列显示图标
Sep 19 Javascript
jQuery利用cookie 实现本地收藏功能(不重复无需多次命名)
Nov 07 jQuery
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
php 函数中使用static的说明
2012/06/01 PHP
破解.net程序(dll文件)编译和反编译方法
2013/01/31 PHP
360通用php防护代码(使用操作详解)
2013/06/18 PHP
Jquery实现无刷新DropDownList联动实现代码
2010/03/08 Javascript
Javascript 面向对象 对象(Object)
2010/05/13 Javascript
JavaScript中把数字转换为字符串的程序代码
2013/06/19 Javascript
Javascript 按位与赋值运算符 (&amp;=)使用介绍
2014/02/04 Javascript
Jquery插件仿百度搜索关键字自动匹配功能
2016/05/11 Javascript
Javascript字符串拼接小技巧(推荐)
2016/06/02 Javascript
AngularJS 路由详解和简单实例
2016/07/28 Javascript
原生js FileReader对象实现图片上传本地预览效果
2020/03/27 Javascript
node.js博客项目开发手记
2018/03/16 Javascript
JavaScript 对引擎、运行时、调用堆栈的概述理解
2018/10/22 Javascript
微信小程序云开发修改云数据库中的数据方法
2019/05/18 Javascript
详谈Vue.js框架下main.js,App.vue,page/index.vue之间的区别
2020/08/12 Javascript
centos 下面安装python2.7 +pip +mysqld
2014/11/18 Python
实例解析Python中的__new__特殊方法
2016/06/02 Python
PyQt5每天必学之像素图控件QPixmap
2018/04/19 Python
Django框架使用富文本编辑器Uedit的方法分析
2018/07/31 Python
详解Django-auth-ldap 配置方法
2018/12/10 Python
对python周期性定时器的示例详解
2019/02/19 Python
Python Web版语音合成实例详解
2019/07/16 Python
python配置文件写入过程详解
2019/10/19 Python
Pandas操作CSV文件的读写实现方法
2019/11/13 Python
Python Selenium 设置元素等待的三种方式
2020/03/18 Python
德国街头和运动文化高品质商店:BSTN Store
2017/08/26 全球购物
英国No.1体育用品零售商:SportsDirect.com
2019/10/16 全球购物
YSL圣罗兰美妆俄罗斯官网:Yves Saint Lauret RU
2020/09/23 全球购物
最新教师自我评价分享
2013/11/12 职场文书
四查四看自我剖析材料
2014/09/19 职场文书
2014年企业工会工作总结
2014/11/12 职场文书
2014年应急管理工作总结
2014/11/26 职场文书
初中生考试作弊检讨书
2014/12/14 职场文书
2015年艾滋病宣传活动总结
2015/03/27 职场文书
公司趣味运动会开幕词
2016/03/04 职场文书
pytorch显存一直变大的解决方案
2021/04/08 Python