zoukankan      html  css  js  c++  java
  • vue 右键菜单插件 简单、可扩展、样式自定义的右键菜单

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

      安装

      

    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:"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:"20px;height:20px;",
                            iconPosition:"left",
                            },
                            {
                            content:"右键菜单二",
                            callback:"otherMethods"
                            }
                        ],
                    },
                }
            },
            methods:{
                callbackMethods(){
                    // do something
                },
                otherMethods(){
                    // do something
                }
            }
        }
    </script>

     补充说明

      main.js引入并use之后,会增加全局指令v-rightMenu ,value为一个对象,value内所有api均已在上面例子说明,可为空的参数就可以不填写,都会有默认值或者本身就是可有可无的

     本插件优缺点说明

      相比较于大众化的右键插件他有如下优点:

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

      缺点说明:

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

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

  • 相关阅读:
    FormsAuthentication.HashPasswordForStoringInConfigFile方法再.net core中的替代代码
    git 删除分支和回退到以前某个提交版本
    .net core 2.1控制台使用Quartz.net实现定时任务执行
    CodeForces
    CodeForces
    CCF 201709-2 公共钥匙盒
    POJ
    CodeForces
    (转)Django vs Flask vs Pyramid: Choosing a Python Web Framework
    (转)Seven Ways of Centering With CSS
  • 原文地址:https://www.cnblogs.com/jinzhenzong/p/10036416.html
Copyright © 2011-2022 走看看