乱码乱a∨中文字幕,在线免费激情视频,亚洲欧美久久夜夜潮,国产在线网址

  1. <sub id="hjl7n"></sub>

    1. <sub id="hjl7n"></sub>

      <legend id="hjl7n"></legend>

      當(dāng)前位置:首頁 >  站長 >  編程技術(shù) >  正文

      vue添加自定義右鍵菜單的完整實例

       2020-12-10 16:18  來源: 腳本之家   我來投稿 撤稿糾錯

        阿里云優(yōu)惠券 先領(lǐng)券再下單

      這篇文章主要給大家介紹了關(guān)于vue添加自定義右鍵菜單的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

      一、寫原生方法

      1.在所編輯的頁面,需要添加右鍵菜單的元素,綁定contextmenu事件,如下:

      <li
      v-for="item in resourceList"
      :key="item.id"
      @click="handleClickFolder(item)"
      @contextmenu.prevent="openMenu($event,item)"
      >
      ...
      </li>

      2.在頁面編寫右鍵菜單內(nèi)容:

      <ul v-show="visible" :style="{left:left+'px',top:top+'px'}" class="contextmenu">
      <!-- <li v-if="rightClickItem.fileType==99" @click="handleClickFolder(rightClickItem)">打開</li>
      <li @click="handleDelete(rightClickItem)">刪除</li>
      <li @click="handleDownloadFile(rightClickItem)" v-if="rightClickItem.fileType!=99">下載</li>
      <li @click="handlePreviewFile(rightClickItem)" v-if="rightClickItem.fileType!=99">預(yù)覽</li>
      <li @click="handleUpdate(rightClickItem)">編輯</li> -->
      <li>內(nèi)容</li>
      </ul>

      3.在data()中定義需要的變量屬性

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

      4.觀察visible的變化,來觸發(fā)關(guān)閉右鍵菜單,調(diào)用關(guān)閉菜單的方法

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

      5.在method中定義打開右鍵菜單和關(guān)閉右鍵菜單的兩個方法

      openMenu(e, item) {
      this.rightClickItem = item;

      var x = e.pageX;
      var y = e.pageY;

      this.top = y;
      this.left = x;

      this.visible = true;
      },
      closeMenu() {
      this.visible = false;
      }

      6.在style中寫右鍵菜單的樣式

      .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-context-menu

      demo地址

      github地址

      安裝:

      npm install vue-contextmenu --save

      引用:

      import VueContextMenu from 'vue-contextmenu'
      Vue.use(VueContextMenu)

      使用:

      <template>
      <div id="app" @contextmenu="showMenu"
      style="width: 100px;height: 100px;margin-top: 20px;background: red;">
      <vue-context-menu :contextMenuData="contextMenuData"
      @savedata="savedata"
      @newdata="newdata"></vue-context-menu>
      </div>
      </template>
      <script>
      export default {
      name: 'app',
      data () {
      return {
      // contextmenu data (菜單數(shù)據(jù))
      contextMenuData: {
      // the contextmenu name(@1.4.1 updated)
      menuName: 'demo',
      // The coordinates of the display(菜單顯示的位置)
      axis: {
      x: null,
      y: null
      },
      // Menu options (菜單選項)
      menulists: [{
      fnHandler: 'savedata', // Binding events(綁定事件)
      icoName: 'fa fa-home fa-fw', // icon (icon圖標(biāo) )
      btnName: 'Save' // The name of the menu option (菜單名稱)
      }, {
      fnHandler: 'newdata',
      icoName: 'fa fa-home fa-fw',
      btnName: 'New'
      }]
      }
      }
      },
      methods: {
      showMenu () {
      event.preventDefault()
      var x = event.clientX
      var y = event.clientY
      // Get the current location
      this.contextMenuData.axis = {
      x, y
      }
      },
      savedata () {
      alert(1)
      },
      newdata () {
      console.log('newdata!')
      }
      }
      }
      </script>

      tip:有說不兼容ie的,具體沒有測試

      到此這篇關(guān)于vue添加自定義右鍵菜單的文章就介紹到這了,更多相關(guān)vue添加自定義右鍵菜單內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

      來源:腳本之家

      鏈接:https://www.jb51.net/article/201645.htm

      申請創(chuàng)業(yè)報道,分享創(chuàng)業(yè)好點子。點擊此處,共同探討創(chuàng)業(yè)新機遇!

      相關(guān)標(biāo)簽
      vue.js

      相關(guān)文章

      • Vue 3自定義指令開發(fā)的相關(guān)總結(jié)

        這篇文章主要介紹了Vue3自定義指令開發(fā)的相關(guān)總結(jié),幫助大家更好的理解和使用vue框架,感興趣的朋友可以了解下

        標(biāo)簽:
        vue.js
      • vue集成一個支持圖片縮放拖拽的富文本編輯器

        文章主要介紹了vue集成一個支持圖片縮放拖拽的富文本編輯器,幫助大家更好的理解和使用vue框架,感興趣的朋友可以了解下。

        標(biāo)簽:
        vue.js
      • vue自定義組件實現(xiàn)雙向綁定

        這篇文章主要為大家詳細(xì)介紹了vue自定義組件實現(xiàn)雙向綁定,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

        標(biāo)簽:
        vue.js
      • Vue實現(xiàn)隨機驗證碼功能

        這篇文章主要為大家詳細(xì)介紹了Vue實現(xiàn)隨機驗證碼功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

        標(biāo)簽:
        vue.js
      • vue實現(xiàn)樹狀表格效果

        這篇文章主要為大家詳細(xì)介紹了vue實現(xiàn)樹狀表格效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

        標(biāo)簽:
        vue.js

      熱門排行

      信息推薦