千家信息网

vue怎么实现右键菜单栏

发表于:2024-11-19 作者:千家信息网编辑
千家信息网最后更新 2024年11月19日,本篇内容主要讲解"vue怎么实现右键菜单栏",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"vue怎么实现右键菜单栏"吧!vue实现右键菜单栏和原生js大同小
千家信息网最后更新 2024年11月19日vue怎么实现右键菜单栏

本篇内容主要讲解"vue怎么实现右键菜单栏",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"vue怎么实现右键菜单栏"吧!

vue实现右键菜单栏和原生js大同小异,都是需要明白两个点

1.contextmenu事件是鼠标的右键点击事件
2.要阻止浏览器的默认右键事件

代码如下

// methodsrightShow() {    let menu = this.$refs.msgRightMenu    this.isPersoncontextMenus = true    var evt = event || window.event;        var clientWidth = document.documentElement.clientWidth || document.body.clientWidth ;        var scrollLeft = document.documentElement.scrollLeft || document.body.scrollLeft;            var clientHeight = document.documentElement.clientHeight || document.body.clientHeight ;        var scrollTop = document.documentElement.scrollTop || document.body.scrollTop ;            //给left和top分别赋值为鼠标的位置;        menu.style.left = evt.pageX+"px";        menu.style.top = evt.pageY+"px";        //如果鼠标右边放不下菜单,就把left的值的改了        if(evt.pageX+100>clientWidth+scrollLeft){//菜单应该在鼠标左边;            var left1 = evt.pageX-100;            menu.style.left = left1+"px";        }        //如果鼠标下边放不下菜单,就把top的值的改了        if(evt.pageY+100>clientHeight+scrollTop){            var top1 = (evt.pageY-100);            menu.style.top = top1+"px";        }            menu.style.display = "block";},showNo(){    let menu = this.$refs.msgRightMenu    menu.style.display = "none";}
//css样式直供参考,根据自己的需要写样式#menu{    list-style: none;    margin: 0px;    padding: 0px;    position: absolute;    display: none;    width: 100px;    height: 100px;    background-color: gray;}#menu li{    margin: 0px;    padding: 0px;}
//html
//这个是最外层的盒子,加self修饰符可以不与其他事件冲突 //这里的prevent修饰符可以直接阻止浏览器的默认行为

效果

到此,相信大家对"vue怎么实现右键菜单栏"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

0