更新记录

1.0.1(2025-04-22)

增加菜单图标功能


平台兼容性

uni-app

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
- - - -
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 快应用-华为 快应用-联盟
- -

其他

多语言 暗黑模式 宽屏模式
× ×

xt-bubble-menu 文档

  1. 支持数据绑定:给组件绑定一个localdata,会自动渲染一组菜单内容。
  2. 支持自定义三角箭头方向和位置偏移:菜单三角箭头可自定义设置top、bottom、left、right四个方向及位置偏移量设置。
  3. 支持$emit事件:菜单item点击事件、菜单显示时的遮罩点击事件。
  4. 支持菜单item图标样式:自定义启用和关闭带图标功能及样式设置。
  5. 兼容情况:开发版本为HBuilderX 4.24,在H5端和APP端能正常使用。

安装方式

将组件文件夹复制粘贴到你项目中的components目录,即可在页面template中直接使用,无需import和注册。

属性

属性名 类型 可选值 默认值 说明
localdata Array - - 本地渲染数据,格式为数组,数组内每项是对象。数据格式:[{text:'',value:'',icon:''}]
direction String direction-top、direction-bottom、direction-left、direction-right - 三角箭头显示样式类名,对应上、下、左、右方向
top String - - 相对父级顶部边缘偏移量,默认单位px
bottom Number, String - - 相对父级底部边缘偏移量,默认单位px
left Number, String - - 相对父级左侧边缘偏移量,默认单位px
right Number, String - - 相对父级右侧边缘偏移量,默认单位px
width Number, String - 100% 菜单宽度,默认单位px
flexDirection String row column 菜单排列方向
offset String - - 菜单三角箭头位置偏移量,默认单位px,箭头位置默认水平居中或垂直居中
enableIcons Boolean - false 启用菜单图标
iconColor String - #ccc 菜单图标颜色
iconSize Number, String - 20 菜单图标大小
maskCloseMenu Boolean - true 启用点击遮罩关闭气泡菜单。若不启用,设置为:maskCloseMenu='false',此时点击遮罩不会关闭菜单。

事件

事件名 事件说明 返回参数
@maskClick 菜单遮罩层点击事件,可在父页面中自定义对应的事件处理。根据maskCloseMenu属性值来设定是否关闭气泡菜单。 -
@menuItemClick 菜单列表项点击事件,可在父页面中自定义对应的事件处理。点击列表项,气泡菜单自动关闭。 -

基本用法

<template>
    <view style="position:relative;">
        <text @click="showBubbleMenu">气泡菜单</text>

        <!-- 气泡菜单,相对顶层定位 -->
        <xt-bubble-menu :localdata="bubbleMenuBaseData" direction="direction-right" 
        :top="show.bubbleMenuTop" right="70" width="100" offset="15" 
        @maskClick="onMaskClick" @menuItemClick="onMenuItemClick">
        </xt-bubble-menu>
    </view>
</template>

<script>
    export default {
        data() {
            return {
                //气泡菜单数据
                bubbleMenuBaseData: [{
                        text: "上移",
                        value: 1,
                        icon:'arrow-up'
                    },
                    {
                        text: "下移",
                        value: 2,
                        icon:'arrow-down'
                    },
                    {
                        text: "修改",
                        value: 3,
                        icon:'compose'
                    },
                    {
                        text: "删除",
                        value: 4,
                        icon:'trash'
                    },
                    {
                        text: "新增",
                        value: 5,
                        icon:'plus'
                    }
                ],
            }
        },

        methods: {          

            //遮罩点击事件
            onMaskClick() {
                console.log("onMaskClick")
            },

            //菜单项单击事件
            onMenuItemClick() {
                console.log("onMenuItemClick")
            }
        }
    }
</script>

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问