vue鼠标右键自定义菜单_使用Vue自定义指令实现右键菜单

news/2025/2/11 21:50:46/

前言

浏览器里右键时会有一个默认的菜单,在我的开源项目中正好有自定义右键菜单的需求,在npm库找了下与之相关的包,发现都是以组件形式实现的,感觉那种做法太过繁琐。

于是,我就想着能不能像vue的内置指令那样,绑定到元素上,在这个元素上右键就能出现右键菜单,这样做就方便很多了。

看了下vue的自定义指令文档后,经过一番折腾,终于实现我的这个想法,本文就跟大家分享下我的实现思路以及过程,欢迎各位感兴趣的开发者阅读本文。

实现思路

Vue中有很多内置指令,例如:v-if、v-for、v-model,它除了这些内置指令外,还允许我们开发者自己注册指令,来实现我们想实现的效果,对Vue自定义指令不熟悉的开发者可以先看一下文档:自定义指令。

接下来,就跟大家讲一下我的实现思路:

布局右键菜单,编写样式

将右键菜单需要的用到的数据在vuex中进行定义

全局注册一个指令,命名为rightClick

拦截被绑定元素的oncontextmenu事件,对组件传过来的值进行处理

更新vuex里的右键菜单数据,触发右键菜单显示

实现过程

接下来,就跟大家分享下我的实现过程。

布局右键样式

我们先来看看这个组件需要哪些数据才能让其显示在鼠标所点的位置。

它的显隐状态,即:元素css的display属性

它的位置,即:元素css的left、top属性

它的文本数据,即:右键菜单要展示的内容,通过v-for来渲染

它的事件处理函数,即:右键菜单中选项点击时,要进行的事件处理

我们在项目中找一个公用组件,确保这个组件会被渲染,在组件的template中加入下述代码。

id="rightMenuDom"

class="right-menu"

:style="{

display: rightMenuStatus,

top: rightMenuTop,

left: rightMenuLeft

}"

>

  • v-for="item in rightMenuList"

    :key="item.id"

    v-show="item.id <= 3"

    @click="item.handler"

    >{{ item.text }}

  • v-for="item in rightMenuList"

    :key="item.id"

    v-show="item.id > 3"

    @click="item.handler"

    >{{ item.text }}


http://www.ppmy.cn/news/708359.html

相关文章

超级右键 - 免费给 Mac 鼠标右键菜单增加快捷功能

由于全新的苹果 M1 处理器相当给力&#xff0c;最近很多小伙伴纷纷购入了新的 Mac。然而&#xff0c;对于刚刚从 Windows 平台转到 macOS 的同学来说&#xff0c;使用上会遇到有很多的不习惯。 比如&#xff0c;在 Windows 资源管理器上的鼠标右键菜单就能很方便地 “新建文本…

鼠标右键兼容MAC版火狐浏览器

oncontextmenu事件 在MAC版火狐浏览器下表现差异 谷歌和其它浏览器 //css*{margin:0;padding:0;}#right-menu{position:absolute;width:150px;visibility:hidden;border:1px solid #bababa;box-shadow: 1px 1px 2px #8e8e8e;}#right-menu li{list-style:none;text-indent:1em;}…

Tauri开发Js/Ts网页、Vue2和Vue3禁止鼠标右键和F12功能,还你一个纯净页面

当你用Js或者html或者tauri开发网页的时候&#xff0c;有时候是需要禁止鼠标右键和F12功能的&#xff0c;否则&#xff0c;别人就可以随便看你代码&#xff0c;并且随便拔你的接口&#xff0c;让你的数据啥都不剩... 不禁用右键的话&#xff0c;页面长这样子&#xff1a;右键就…

怎么把文件右键重命名显示往上移动(或怎么减少鼠标右键选项)

1.小伙伴们竟然发现重命名在最下面&#xff0c;怎么让它往上面移呢 其实是因为您下载的文件操作工具太多&#xff0c;导致文件自带的操作下移 今天小编就来教大家一个简单又快捷安全的方法哦 首先&#xff0c;第一步&#xff1a;打开你的360安全卫视&#xff08;没有的小伙伴…

Macbook(苹果机 Apple)打开鼠标右键

Macbook(苹果机 Apple)默认是没有鼠标右键&#xff0c;在使用过程中&#xff0c;真的好难受&#xff0c;刚开始很不习惯&#xff0c;对于习惯用 Windows 的用户&#xff0c;怎么可能没有鼠标右键呢。 不过Macbook(苹果机 Apple)想要给鼠标增加右键功能&#xff0c;也是很简单的…

鼠标右键 移动选定的文件夹到指定位置_iRightMouse:一款免费Mac鼠标右键增强神器...

如果你是多年的Windows用户转到macOS平台&#xff0c;你必定会发现Windows上很多非常方便的鼠标右键菜单在macOS上都是没有的&#xff0c;例如新建txt文档、一键隐藏文件等。而这些快捷功能的缺失也确实会带来一些不便&#xff0c;奇客君发现一款刚刚上线的免费右键增强工具&am…

win10鼠标右键添加命令提示符打开

效果预览&#xff1a; 步骤&#xff1a; 1.首先我们按下winR组合键打开运行窗口&#xff0c;输入regedit后回车打开注册表&#xff0c;然后依次在注册表找到HKEY_CLASSES_ROOT\Directory\background\shell&#xff0c;我们右键点击“shell”&#xff0c;选择“新建”-“项”&a…

没有鼠标怎么点计算机的右键,没有鼠标Mac怎么调出右键菜单_教你在Mac系统调出右键菜单的方法...

有网友留言说没有鼠标Mac怎么调出右键菜单&#xff1f;外出办公Mac笔记本电脑没有携带鼠标&#xff0c;细心用户发现苹果电脑触摸板上没有了windows系统电脑的实体右键按钮&#xff0c;导致调不出右键菜单&#xff0c;这该怎么办&#xff1f;下面小编教你在Mac系统调出右键菜单…