vue原生方法自定义右键菜单

 更新时间:2022年04月10日 08:13:49   作者:weixin_51751522  
这篇文章主要为大家详细介绍了vue原生方法自定义右键菜单,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了vue原生方法自定义右键菜单的具体代码,供大家参考,具体内容如下

1.在需要添加右键的页面,绑定contextmenu事件(阻止浏览器默认事件,添加自定义事件)

<div @contextmenu.prevent.native="openMenu($event)">
  ....
</div>

2.在页面编写右键菜单的内容

<ul v-show="visible" :style="{left:left+'px',top:top+'px'}" class="contextmenu">
        <li @click="test">添加节点</li>
         <li @click="test">添加节点</li>
</ul>

3.在data()中定义需要的变量属性

data() {
    return {
      visible: false,
      top: 0,
      left: 0
    }
  }

4.创建监听事件,来触发关闭右键菜单的方法

watch: {
    visible(value) {
      if (value) {
        document.body.addEventListener('click', this.closeMenu)
      } else {
        document.body.removeEventListener('click', this.closeMenu)
      }
    }
  },

5.打开和关闭右键菜单的两个方法

//start
openMenu(e) {
  var x = e.pageX;
  var y = e.pageY;
  this.top = y;
  this.left = x;
  this.visible = true;//在这里控制右键菜单的打开
},
//close
closeMenu() {
  this.visible = false;
},

6.样式

.contextmenu {
  margin: 0;
  background: #fff;
  z-index: 3000;
  position: absolute;
  list-style-type: none;
  padding: 5px 0;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 400;
  color: #333;
  box-shadow: 2px 2px 3px 0 rgba(0, 0, 0, 0.3);
}

.contextmenu li {
  margin: 0;
  padding: 7px 16px;
  cursor: pointer;
}
.contextmenu li:hover {
  background: #eee;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • vue使用canvas实现移动端手写签名

    vue使用canvas实现移动端手写签名

    这篇文章主要为大家详细介绍了基于vue使用canvas实现移动端手写签名,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-09-09
  • npm install -g @vue/cli安装vue脚手架报错问题(一般都能解决)

    npm install -g @vue/cli安装vue脚手架报错问题(一般都能解决)

    这篇文章主要介绍了npm install -g @vue/cli安装vue脚手架报错问题(一般都能解决),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10
  • 浅谈Vue插槽实现原理

    浅谈Vue插槽实现原理

    vue.js的灵魂是组件,而组件的灵魂是插槽。借助于插槽,我们能最大程度上实现组件复用。本文主要是对插槽的实现机制进行详细概括总结,在某些场景中,有一定的用处
    2021-06-06
  • 解决vue 打包发布去#和页面空白的问题

    解决vue 打包发布去#和页面空白的问题

    今天小编就为大家分享一篇解决vue 打包发布去#和页面空白的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-09-09
  • vuex安装失败解决的方法实例

    vuex安装失败解决的方法实例

    Vuex是一个专为Vue.js应用程序开发的状态管理模式,下面这篇文章主要给大家介绍了关于vuex安装失败解决的方法,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2022-07-07
  • 手把手带你封装一个vue component第三方库

    手把手带你封装一个vue component第三方库

    这篇文章主要介绍了手把手带你封装一个vue component第三方库,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-02-02
  • spring-cloud-stream的手动消息确认问题

    spring-cloud-stream的手动消息确认问题

    这篇文章主要介绍了spring-cloud-stream的手动消息确认问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • Vue报错:Injection "xxxx" not found的解决办法

    Vue报错:Injection "xxxx" not found的解决办法

    这篇文章主要给大家介绍了关于Vue报错:Injection "xxxx" not found的解决办法,文中通过图文将解决的办法介绍的非常详细,对大家的学习具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07
  • vue 表格单选按钮的实现方式

    vue 表格单选按钮的实现方式

    这篇文章主要介绍了vue 表格单选按钮的实现方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • Vue中内置指令与自定义指令语法详解

    Vue中内置指令与自定义指令语法详解

    这篇文章主要为大家介绍了Vue中内置指令与自定义指令语法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08

最新评论