vue 右键菜单插件 简单、可扩展、样式自定义的右键菜单

  今天分享的不是技术,今天给你们分享个插件,针对现有的vue右键菜单插件,大多数都是须要使用插件自己自定义的标签,不少地方不方便,可扩展性也很低,因此我决定写了一款自定义指令调用右键菜单(vuerightmenu)css

  安装

  

1  npm install rightmenu --save-dev

 

   开始

//main.js
import vue from "vue";
import rightMenu from "rightMenu";
vue.use(rightMenu);

  例子

<template>
    <div>
        <button v-rightMenu = "menudata">
            {{
                text
            }}
        </button>
    </div>
</template>
<script>
    export default {
        name:"demo",
        data(){
            return {
                menudata:{
                    // 菜单box的样式   Menu box style
                    boxStyle:"width:150px;background:#f55;",
                    // 菜单选项的样式 Style of menu options
                    optionStyle:"color:#fff;line-height:30px;font-size:15px;",
                    menus:[
                        {
                        /**
                         * content 菜单显示的文字 <支持html> 
                         * callback:菜单点击要触发函数  须要在methods定义 
                         * style : 本项菜单的单独样式 能够覆盖掉optionStyle  
                         * icon : icon图片地址
                         * iconStyle: icon 图片的样式(例如大小等 直接做用于图片)
                         * iconPosition : 支持left / right (其他所有按照left处理);
                         * content The text displayed on the menu(can use html)
                         * callback: Menu clicks to trigger functions need to be defined in methods
                         * style :  The single style of this menu can override option Style
                         * icon : your icon's url
                         * iconStyle : you icon's style ,is image's style
                         * iconPosition :you can use left or right ;The rest are all processed according to left
                         */
                        /**
                         * 字段(field)           类型(type)                 是否能够为空(is can null)    默认值
                         * content            [ html | text ]                       Y                   ""
                         * callback           [  methods function ]                 Y                   return false
                         * style                   [ css ]                          Y                   ""
                         * icon                   [ url ]                           Y                   ""
                         * iconStyle              [ css ]                           Y                   ""
                         * iconPosition           [string]                          Y                   "left"
                        */
                        content:"menu content",
                        callback:"callbackMethods",
                        style:"border-bottom:1px solid #fff;background:#333;line-height:30px;",
                        icon:"https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=2310514390,3580363630&fm=27&gp=0.jpg",
                        iconStyle:"width:20px;height:20px;",
                        iconPosition:"left",
                        },
                        {
                        content:"右键菜单二",
                        callback:"otherMethods"
                        }
                    ],
                },
            }
        },
        methods:{
            callbackMethods(){
                // do something
            },
            otherMethods(){
                // do something
            }
        }
    }
</script>

 

 补充说明

  main.js引入并use以后,会增长全局指令v-rightMenu ,value为一个对象,value内全部api均已在上面例子说明,可为空的参数就能够不填写,都会有默认值或者自己就是无关紧要的html

 本插件优缺点说明

  相比较于大众化的右键插件他有以下优势:vue

  •   插件精悍短小,运行速度快
  •   不须要单独配置任何边界检测,插件自己自带了
  •   样式彻底根据用户需求,自定义菜单的任何地方的样式
  •       使用简单,一个指令便可调用
  •       不会为页面渲染无用的dom,一切都是在你第一次使用时候才会进行加载,而且保证在以后的屡次使用中,不会渲染多余dom
  •   支持菜单文字(content字段)使用html ,没错,你可使用字体图标而不用拘泥于插件自身的图片图标,也可使用不一样的标签来表示你的菜单(固然我也考虑了如此作法,可能须要你必需要完整的吧标签写出来,不然可能会报错,这个问题后期我会进行修复,先看看效果)

  缺点说明:git

  •   由于本菜单实现的是高度自定义,因此可能会让使用者须要定义不少样式,我只写了一些必要的样式,其他所有须要使用者来自定义(我也不知道这是个缺点仍是优势,不过若是我是使用者我会以为仍是插件自己不带有不少的样式为好)
  •       由于设计插件时候,没有考虑到图标问题,因此致使后期有人和我说想要图标的时候,我加入图标功能进去,会致使图片稍微高于文字一些,这个小bug也是css自己自带的,而这个小bug刚好卡在了项目的痛点,也不算痛点吧,只是我工做上有一些事情也必需要尽快处理,而这个问题因此为了弥补这个问题,我加入了content内支持了html,也就是说若是你的要求很高,对视觉上,我建议你用字体图标,至于图片与文字的问题,我会在短时间内尽快修复,修复好,我会第一时间发布

本插件旨在实现的是灵活 + 低配置 + 扩展性高 + 指令调用的快速右键菜单,正如你看到的我只须要一个指令,一个json,仅此而已。本插件对于新人仍是老手均能适用,由于本插件是一款扩展性极高的插件,支持你配置菜单总样式、菜单选项样式、点击的回调函数、菜单选项的icon 甚至你能定义每一单独选项的样式以及icon。最后感谢你们的支持,若是喜欢的话请到github(https://github.com/JinZhenZon/rightmenu)为本插件点个star吧。使用中若有问题,请联系个人QQ:421217189github

相关文章
相关标签/搜索