原生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 相关文章推荐
jquery学习笔记 用jquery实现无刷新登录
Aug 08 Javascript
jQuery中clearQueue()方法用法实例
Dec 29 Javascript
JS实现HTML表格排序功能
Aug 05 Javascript
JavaScript里 ==与===区别详解
Aug 16 Javascript
jQ处理xml文件和xml字符串的方法(详解)
Nov 22 Javascript
详谈$.data()的用法和作用
Feb 13 Javascript
微信小程序 数据遍历的实现
Apr 05 Javascript
解决vue打包css文件中背景图片的路径问题
Sep 03 Javascript
js canvas实现写字动画效果
Nov 30 Javascript
[原创]微信小程序获取网络类型的方法示例
Mar 01 Javascript
ES6 Set结构的应用实例分析
Jun 26 Javascript
vue项目打包后提交到git上为什么没有dist这个文件的解决方法
Sep 16 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
基于mysql的论坛(2)
2006/10/09 PHP
ThinkPHP结合ajax、Mysql实现的客户端通信功能代码示例
2014/06/23 PHP
php中explode的负数limit用法分析
2015/02/27 PHP
PHP实现上传文件并存进数据库的方法
2015/07/16 PHP
解决laravel session失效的问题
2019/10/14 PHP
jquery 1.4.2发布!主要是性能与API
2010/02/25 Javascript
Node.js中HTTP模块与事件模块详解
2014/11/14 Javascript
node.js使用npm 安装插件时提示install Error: ENOENT报错的解决方法
2014/11/20 Javascript
5种处理js跨域问题方法汇总
2014/12/04 Javascript
NodeJS中Buffer模块详解
2015/01/07 NodeJs
基于jQuery全屏焦点图左右切换插件responsiveslides
2015/09/07 Javascript
跟我学习javascript的var预解析与函数声明提升
2015/11/16 Javascript
Javascript之String对象详解
2016/06/08 Javascript
JS简单实现仿百度控制台输出信息效果
2016/09/04 Javascript
js实现点击切换checkbox背景图片的简单实例
2017/05/08 Javascript
基于Vue实现图书管理功能
2017/10/17 Javascript
微信小程序使用progress组件实现显示进度功能【附源码下载】
2017/12/12 Javascript
js嵌套的数组扁平化:将多维数组变成一维数组以及push()与concat()区别的讲解
2019/01/19 Javascript
vue使用nprogress加载路由进度条的方法
2020/06/04 Javascript
Python日志模块logging简介
2015/04/13 Python
Python的字典和列表的使用中一些需要注意的地方
2015/04/24 Python
在pandas中一次性删除dataframe的多个列方法
2018/04/10 Python
Python从数据库读取大量数据批量写入文件的方法
2018/12/10 Python
Pycharm设置utf-8自动显示方法
2019/01/17 Python
Django在admin后台集成TinyMCE富文本编辑器的例子
2019/08/09 Python
pytorch动态网络以及权重共享实例
2020/01/06 Python
python3 googletrans超时报错问题及翻译工具优化方案 附源码
2020/12/23 Python
阿迪达斯印度官方商城:adidas India
2017/03/26 全球购物
美国生鲜及杂货电商:FreshDirect
2018/01/29 全球购物
优秀毕业生自荐信
2014/06/10 职场文书
2014年助理政工师工作总结
2014/12/19 职场文书
先进个人材料怎么写
2014/12/30 职场文书
人事局接收函
2015/01/30 职场文书
小学生表扬稿范文
2015/05/05 职场文书
员工考勤管理制度
2015/08/06 职场文书
制作能在nginx和IIS中使用的ssl证书
2021/06/21 Servers