欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

iview“官方“实现的右键菜单

程序员文章站 2022-03-13 15:57:18
博客开篇,没想到第一篇博文竟然是前端的,虽略显尴尬,但正能量溢出,你我可能遇到同样问题,在这里分享下个人方案,希望对你有用。 官方目前不提供右键菜单,这里借助Dropdown(下拉菜单)来实现,故为“官方“。 既然Dropdown有类似功能,如果将其文字隐藏,并且在合适时机弹出,便可实现,其自身就是 ......

  博客开篇,没想到第一篇博文竟然是前端的,虽略显尴尬,但正能量溢出,你我可能遇到同样问题,在这里分享下个人方案,希望对你有用。

官方目前不提供右键菜单,这里借助dropdown(下拉菜单)来实现,故为“官方“。

  既然dropdown有类似功能,如果将其文字隐藏,并且在合适时机弹出,便可实现,其自身就是iview中一个组件,不言而喻,功能强大、简洁。

  源码之下,了无秘密,简单陈述下思路,在模板中正常使用dropdown组件,属性、样式需要单独设置(style="display:none" trigger="click"),即默认不显示,click触发,右键按下时首先设置其可见,在更改reference对象引用即可。

模板如下

iview“官方“实现的右键菜单

逻辑如下:

 

iview“官方“实现的右键菜单

截图效果:

iview“官方“实现的右键菜单

源码跟踪:

  一。标签a不可见,原本以为只要改变left top,菜单会自动跟随,其位置是通过调用元素的getboundingclientrect来获取,因标签不可见,拿到都是0,此路不通,pass;

  二。也可以改变标签的z-index顺序,使其在目标节点之下,这里动态改变其引用节点来实现。

  理论上任何组件都可实现右键菜单。