html5 右键菜单插件,vue添加自定义右键菜单的完整实例

这篇文章主要给大家介绍了关于vue添加自定义右键菜单的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

一、写原生方法

f3138dc16bd32161fc18f1944a607ee0.png

1.在所编辑的页面,需要添加右键菜单的元素,绑定contextmenu事件,如下:

v-for=”item in resourceList”

:key=”item.id”

@click=”handleClickFolder(item)”

@contextmenu.prevent=”openMenu($event,item)”

>

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

打开

删除下载预览编辑 –>内容

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

data() {

return {

visible: false,

top: 0,

left: 0

}

}

4.观察visible的变化,来触发关闭右键菜单,调用关闭菜单的方法

watch: {

visible(value) {

if (value) {

document.body.addEventListener(‘click’, this.closeMenu)

} else {

document.body.removeEventListener(‘click’, this.closeMenu)

}

}

}

5.在method中定义打开右键菜单和关闭右键菜单的两个方法

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)

使用:

style=”width: 100px;height: 100px;margin-top: 20px;background: red;”>

@savedata=”savedata”

@newdata=”newdata”>

export default {

name: ‘app’,

data () {

return {

// contextmenu data (菜单数据)

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图标 )

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!’)

}

}

}

tip:有说不兼容ie的,具体没有测试

到此这篇关于vue添加自定义右键菜单的文章就介绍到这了,更多相关vue添加自定义右键菜单内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后支持脚本之家!

来源:脚本之家

原创文章,作者:如有,如若转载,请注明出处:https://www.ruyou66.com/76268.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值