vue右键菜单的简单封装

 更新时间:2022年04月08日 14:22:41   作者:橡皮擦不掉的  
这篇文章主要为大家详细介绍了vue右键菜单的简单封装,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了vue实现右键菜单封装的具体代码,供大家参考,具体内容如下

封装一个简单的右键菜单,要求右键处出现菜单,点击除了菜单部分可以关闭菜单。

组件

<template>
  <div class="ContextMenu" @click="close" v-show="show">
    <ul class="menuMain" ref="menuMain" :style="{ top: y, left: x }">
      <slot></slot>
    </ul>
  </div>
</template>

<script>
export default {
  name: "ContextMenu",
  mounted() {
    document.addEventListener("contextmenu", this.contextClick);
  },
  data() {
    return {
      x: "0px",
      y: "0px",
      show: false
    };
  },
  methods: {
    //右键事件
    contextClick(e) {
      //阻止默认事件
      e.preventDefault();
      this.show = true;
      this.x = e.clientX + "px";
      this.y = e.clientY + "px";
    },
    close(e) {
      //判断点击区域是否是menuMain的子元素 如果不是则关闭菜单
      if (!this.$refs.menuMain.contains(e.target)) {
        this.show = false;
      }
    }
  }
};
</script>

<style lang="less" scoped>
.ContextMenu {
  position: fixed;
  width: 100vw;
  height: 100vh;
  top: 0;
  left: 0;
  .menuMain {
    position: fixed;
    z-index: 100000;
    list-style: none;
    border-radius: 10px;
    padding: 0;
    margin: 0;
    background-color: #f5f5f5;
    overflow: hidden;
    li{
      padding: 20px;
      cursor: pointer;
      &:hover{
        background-color: #bdbdbd;
      }
    }
  }
}
</style>

使用

<context-menu>
    <li>hello</li>
    <li>hello</li>
</context-menu>

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

相关文章

  • ant-design-vue按需加载的坑的解决

    ant-design-vue按需加载的坑的解决

    这篇文章主要介绍了ant-design-vue按需加载的坑的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • vue富文本框(插入文本、图片、视频)的使用及问题小结

    vue富文本框(插入文本、图片、视频)的使用及问题小结

    这篇文章主要介绍了vue富文本框(插入文本、图片、视频)的使用及问题小结,需要的朋友可以参考下
    2018-08-08
  • Vue 展示.md文件的方法详解

    Vue 展示.md文件的方法详解

    这篇文章主要介绍了Vue 展示.md文件的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-05-05
  • VUEX如何使用

    VUEX如何使用

    Vuex 可以帮助我们管理共享状态,并附带了更多的概念和框架,本文主要介绍了VUEX如何使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • 一文详解Vue3响应式原理

    一文详解Vue3响应式原理

    这篇文章主要介绍了一文详解Vue3响应式原理,文章通过与vue2.x 的响应式做对比详解展现出了Vue3响应式原理详情,感兴趣的小伙伴可以参考一下
    2022-06-06
  • Vue.js实现数据响应的方法

    Vue.js实现数据响应的方法

    这篇文章主要介绍了Vue.js实现数据响应的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-08-08
  • Vue组件和Route的生命周期实例详解

    Vue组件和Route的生命周期实例详解

    这篇文章主要介绍了Vue组件和Route的生命周期的相关知识,需要的朋友可以参考下
    2018-02-02
  • 解决Vue.js应用回退或刷新界面时提示用户保存修改问题

    解决Vue.js应用回退或刷新界面时提示用户保存修改问题

    这篇文章主要介绍了Vue.js应用回退或刷新界面时提示用户保存修改问题,本文通过两种手段防止运营编辑时丢失数据,具体内容详情,感兴趣的朋友跟随小编一起看看吧
    2019-11-11
  • vue递归生成树状结构的示例代码

    vue递归生成树状结构的示例代码

    这篇文章主要介绍了vue递归生成树状结构的示例,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-07-07
  • vue使用neovis操作neo4j图形数据库及优缺点

    vue使用neovis操作neo4j图形数据库及优缺点

    这篇文章主要介绍了vue使用neovis操作neo4j图形数据库,本文给大家介绍了与常规做法的优缺点对比及使用技巧,对vue neo4j图形数据库相关知识感兴趣的朋友一起看看吧
    2022-02-02

最新评论