原生Vue 實(shí)現(xiàn)右鍵菜單組件功能
Vue 原生實(shí)現(xiàn)右鍵菜單組件, 零依賴
快速安裝
npm install vue-contextmenujs
使用
測試中使用的是 element-ui 圖標(biāo)
import Contextmenu from "vue-contextmenujs"
Vue.use(Contextmenu);
<template>
<div id="app" style="width:100vw;height:100vh" @contextmenu.prevent="onContextmenu"></div>
</template>
<script>
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,
customClass: "class-a",
zIndex: 3,
minWidth: 230
});
return false;
}
}
};
</script>
ps:下面看下vue點(diǎn)擊菜單以外區(qū)域,隱藏菜單操作
data() {
return {
menuShow: false //v-show標(biāo)識隱藏顯示
}
},
mounted (){
let _this = this;
document.addEventListener('click', function (e) { // 下面這句代碼是獲取 點(diǎn)擊的區(qū)域是否包含你的菜單,如果包含,說明點(diǎn)擊的是菜單以外,不包含則為菜單以內(nèi)
let flag = e.target.contains(document.getElementsByClassName('menu-class')[0])
console.log(flag)
if(!flag) return
_this.menuShow = false
})
}
總結(jié)
以上所述是小編給大家介紹的原生Vue 實(shí)現(xiàn)右鍵菜單組件功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
Vuex管理dialog、toast等常見全局性組件狀態(tài)時唯一性的問題解決
工作中經(jīng)常會用到類似于?dialog、toast、popover?等一些狀態(tài)提示組件,這篇文章主要介紹了Vuex管理dialog、toast等常見全局性組件狀態(tài)時唯一性的問題,需要的朋友可以參考下2022-11-11
Vue實(shí)現(xiàn)項(xiàng)目通用配置環(huán)境管理詳解
這篇文章主要為大家詳細(xì)介紹了Vue實(shí)現(xiàn)項(xiàng)目通用配置環(huán)境管理的相關(guān)知識,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-03-03
Vue-cli搭建spa項(xiàng)目的項(xiàng)目實(shí)踐
本文主要介紹了Vue-cli搭建spa項(xiàng)目的項(xiàng)目實(shí)踐,首先,你需要安裝Vue CLI,然后通過它創(chuàng)建新項(xiàng)目,接著,選擇和配置適當(dāng)?shù)牟寮鸵蕾図?xiàng),以完善你的SPA項(xiàng)目,感興趣的可以了解一下2023-09-09
解決vue.js this.$router.push無效的問題
今天小編就為大家分享一篇解決vue.js this.$router.push無效的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-09-09
Vue+ECharts實(shí)現(xiàn)中國地圖的繪制及各省份自動輪播高亮顯示
這篇文章主要介紹了Vue+ECharts實(shí)現(xiàn)中國地圖的繪制以及拖動、縮放和各省份自動輪播高亮顯示,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-12-12
uniapp微信小程序webview和h5數(shù)據(jù)通信代碼示例
這篇文章主要介紹了uniapp微信小程序webview和h5數(shù)據(jù)通信的相關(guān)資料,文章還列出了項(xiàng)目的結(jié)構(gòu),包括微信小程序和h5端的主要文件和組件,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-01-01

