原生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入门—选择器实现隔行变色实例代码
Jan 04 Javascript
js鼠标点击图片实现随机变换图片的方法
Feb 16 Javascript
js实现交换运动效果的方法
Apr 10 Javascript
JS判断字符串包含的方法
May 05 Javascript
javascript中$(function() {});写与不写有哪些区别
Aug 10 Javascript
jQuery点击改变class并toggle及toggleClass()方法定义用法
Dec 11 Javascript
实例详解jQuery结合GridView控件的使用方法
Jan 04 Javascript
浅析JavaScript中命名空间namespace模式
Jun 22 Javascript
Angular.JS判断复选框checkbox是否选中并实时显示
Nov 30 Javascript
Vue使用枚举类型实现HTML下拉框步骤详解
Feb 05 Javascript
在vue项目中引用Iview的方法
Sep 14 Javascript
简介JavaScript错误处理机制
Aug 04 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
PHP分页显示制作详细讲解
2006/10/09 PHP
windows7下php开发环境搭建图文教程
2015/01/06 PHP
Yii2框架使用计划任务的方法
2016/05/25 PHP
php正则表达式基本知识与应用详解【经典教程】
2017/04/17 PHP
PHP 7安装使用体验之性能大提升,兼容性强,扩展支持不够(升级PHP要谨慎)
2017/07/27 PHP
JavaScript脚本性能的优化方法
2007/02/02 Javascript
javascript for循环从入门到偏门(效率优化+奇特用法)
2012/08/01 Javascript
解析使用js判断只能输入数字、字母等验证的方法(总结)
2013/05/14 Javascript
node.js中的events.emitter.removeAllListeners方法使用说明
2014/12/10 Javascript
js代码实现随机颜色的小方块
2015/07/30 Javascript
JavaScript实现ASC转汉字及汉字转ASC的方法
2016/01/23 Javascript
浅谈JS之iframe中的窗口
2016/09/13 Javascript
jQuery实现带遮罩层效果的blockUI弹出层示例【附demo源码下载】
2016/09/14 Javascript
jQuery 插件封装的方法
2016/11/16 Javascript
JSONP跨域请求
2017/03/02 Javascript
angularJS深拷贝详解
2017/03/23 Javascript
Vue2.x中的父组件传递数据至子组件的方法
2017/05/01 Javascript
JavaScript递归算法生成树形菜单
2017/08/15 Javascript
一文让你彻底搞清楚javascript中的require、import与export
2017/09/24 Javascript
angularjs1.5 组件内用函数向外传值的实例
2018/09/30 Javascript
[02:43]2018DOTA2亚洲邀请赛主赛事首日TOP5
2018/04/04 DOTA
[01:23:24]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant BO3 第三场 2月7日
2021/03/11 DOTA
从零学python系列之从文件读取和保存数据
2014/05/23 Python
python实现根据月份和日期得到星座的方法
2015/03/27 Python
Python OpenCV 直方图的计算与显示的方法示例
2018/02/08 Python
Python3之简单搭建自带服务器的实例讲解
2018/06/04 Python
Python基于递归算法求最小公倍数和最大公约数示例
2018/07/27 Python
Python基础学习之函数方法实例详解
2019/06/18 Python
python 中xpath爬虫实例详解
2019/08/26 Python
Python实现病毒仿真器的方法示例(附demo)
2020/02/19 Python
通过Python扫描代码关键字并进行预警的实现方法
2020/05/24 Python
应届生求职信写作技巧
2013/10/24 职场文书
校园摄影活动策划方案
2014/02/05 职场文书
道歉的话语大全
2015/05/12 职场文书
2016学雷锋优秀志愿者事迹材料
2016/02/25 职场文书
mysql拆分字符串作为查询条件的示例代码
2022/07/07 MySQL