原生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 相关文章推荐
页面只能打开一次Cooike如何实现
Dec 04 Javascript
javascript的回调函数应用示例
Feb 20 Javascript
jQuery实现仿淘宝带有指示条的图片转动切换效果完整实例
Mar 04 Javascript
Javascript 高性能之递归,迭代,查表法详解及实例
Jan 08 Javascript
微信小程序 swiper制作tab切换实现附源码
Jan 21 Javascript
基于Vue制作组织架构树组件
Dec 06 Javascript
在nginx上部署vue项目(history模式)的方法
Dec 28 Javascript
深入Node TCP模块的理解
Mar 13 Javascript
JS实现li标签的删除
Apr 12 Javascript
layer.prompt使文本框为空的情况下也能点击确定的方法
Sep 24 Javascript
vue.js实现简单的计算器功能
Feb 22 Javascript
JavaScript实现网页跨年倒计时
Dec 02 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
MayFish PHP的MVC架构的开发框架
2009/08/13 PHP
PHP中抽象类和抽象方法概念与用法分析
2016/05/24 PHP
ZendFramework框架实现连接两个或多个数据库的方法
2016/12/08 PHP
网站页面自动跳转实现方法PHP、JSP(上)
2010/08/01 Javascript
js 完美图片新闻轮转效果,腾讯大粤网首页图片轮转改造而来
2011/11/21 Javascript
js字母大小写转换实现方法总结
2013/11/13 Javascript
js获取select标签的值且兼容IE与firefox
2013/12/30 Javascript
Node.js中对通用模块的封装方法
2014/06/06 Javascript
Javascript核心读书有感之语句
2015/02/11 Javascript
jQuery增加自定义函数的方法
2015/07/18 Javascript
AngularJs中route的使用方法和配置
2016/02/04 Javascript
jquery checkbox无法用attr()二次勾选问题的解决方法
2016/07/22 Javascript
js 获取站点应用名的简单实例
2016/08/18 Javascript
微信小程序tabBar底部导航中文注解api详解
2017/08/16 Javascript
vue封装第三方插件并发布到npm的方法
2017/09/25 Javascript
vue项目中引入noVNC远程桌面的方法
2018/03/05 Javascript
详解Vue 动态组件与全局事件绑定总结
2018/11/11 Javascript
node.js 基于cheerio的爬虫工具的实现(需要登录权限的爬虫工具)
2019/04/10 Javascript
Vue中函数防抖节流的理解及应用实现
2020/04/24 Javascript
[01:45]DOTA2新英雄“神谕者”全方位展示
2014/11/21 DOTA
[04:29]【TI9采访】OG.N0tail在胜者组决赛后接受采访
2019/08/25 DOTA
python 字典(dict)遍历的四种方法性能测试报告
2014/06/25 Python
编写Python脚本把sqlAlchemy对象转换成dict的教程
2015/05/29 Python
Python 实现某个功能每隔一段时间被执行一次的功能方法
2018/10/14 Python
Python中一些深不见底的“坑”
2019/06/12 Python
ORM Django 终端打印 SQL 语句实现解析
2019/08/09 Python
Win10+GPU版Pytorch1.1安装的安装步骤
2019/09/27 Python
python安装gdal的两种方法
2019/10/29 Python
python 还原梯度下降算法实现一维线性回归
2020/10/22 Python
pycharm 使用anaconda为默认环境的操作
2021/02/05 Python
html5借用repeating-linear-gradient实现一把刻度尺(ruler)
2019/09/09 HTML / CSS
美国中小型企业领先的办公家具供应商:Office Designs
2016/11/26 全球购物
党员批评与自我批评(5篇)
2014/09/23 职场文书
党员志愿者服务倡议书
2015/04/29 职场文书
Python编写可视化界面的全过程(Python+PyCharm+PyQt)
2021/05/17 Python
mysql sql常用语句大全
2022/06/21 MySQL