溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Vue如何實(shí)現(xiàn)右鍵菜單

發(fā)布時(shí)間:2021-10-29 13:03:31 來源:億速云 閱讀:391 作者:小新 欄目:開發(fā)技術(shù)

小編給大家分享一下Vue如何實(shí)現(xiàn)右鍵菜單,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

效果圖

Vue如何實(shí)現(xiàn)右鍵菜單

安裝

npm install vue-contextmenujs


yarn add vue-contextmenujs

使用

import Contextmenu from "vue-contextmenujs"
Vue.use(Contextmenu);

代碼實(shí)現(xiàn)

以element-ui圖標(biāo)為例實(shí)現(xiàn)右鍵菜單,圖標(biāo)會(huì)為被渲染為<i class="icon"></i>,代碼如下:

<template>
  <div  @contextmenu.prevent="onContextmenu"></div>
</template>

<script>
import Vue from 'vue'
import Contextmenu from "vue-contextmenujs"
Vue.use(Contextmenu);
export default {
  methods: {
    onContextmenu(event) {
      this.$contextmenu({
        items: [
          {
            label: "返回(B)",
            onClick: () => {
              this.message = "返回(B)";
              console.log("返回(B)");
            }
          },
          { label: "前進(jìn)(F)", disabled: true },
          { label: "重新加載(R)", divided: true, icon: "el-icon-refresh" },
          { label: "另存為(A)..." },
          { label: "打印(P)...", icon: "el-icon-printer" },
          { label: "投射(C)...", divided: true },
          {
            label: "使用網(wǎng)頁翻譯(T)",
            divided: true,
            minWidth: 0,
            children: [{ label: "翻譯成簡體中文" }, { label: "翻譯成繁體中文" }]
          },
          {
            label: "截取網(wǎng)頁(R)",
            minWidth: 0,
            children: [
              {
                label: "截取可視化區(qū)域",
                onClick: () => {
                  this.message = "截取可視化區(qū)域";
                  console.log("截取可視化區(qū)域");
                }
              },
              { label: "截取全屏" }
            ]
          },
          { label: "查看網(wǎng)頁源代碼(V)", icon: "el-icon-view" },
          { label: "檢查(N)" }
        ],
        event, // 鼠標(biāo)事件信息
        customClass: "custom-class", // 自定義菜單 class
        zIndex: 3, // 菜單樣式 z-index
        minWidth: 230 // 主菜單最小寬度
      });
      return false;
    }
  }
};
</script>

菜單選項(xiàng)都在items數(shù)組里面,可根據(jù)需要自行配置。這時(shí)候點(diǎn)擊右鍵,菜單彈窗就神奇地出現(xiàn)了,是不是很簡單!

自定義樣式

打開控制臺(tái),查看元素即可查看到菜單的各個(gè) class 名稱。最外層的 class 為上面的customClass屬性設(shè)置的值,樣式可根據(jù)需求自行調(diào)整。

<style>
.custom-class .menu_item__available:hover,
.custom-class .menu_item_expand {
  background: #ffecf2 !important;
  color: #ff4050 !important;
}
</style>

Vue如何實(shí)現(xiàn)右鍵菜單

總結(jié)

以上就基本使用方法,是不是比自己封裝節(jié)省了大把時(shí)間。注意菜單會(huì)在點(diǎn)擊左鍵或者滾輪滾動(dòng)時(shí)自動(dòng)銷毀,同時(shí)也可調(diào)用this.$contextmenu.destroy()在其他場景自行銷毀 。以下是插件的參數(shù)配置:

MenuOptions 菜單屬性

Vue如何實(shí)現(xiàn)右鍵菜單

MenuItemOptions 選項(xiàng)屬性

Vue如何實(shí)現(xiàn)右鍵菜單

看完了這篇文章,相信你對“Vue如何實(shí)現(xiàn)右鍵菜單”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

vue
AI