# x-dropdown 组件使用说明 ## 组件简介 `x-dropdown` 是一个灵活的下拉菜单组件,支持自定义触发器和菜单内容,提供智能定位和动画效果。 ## 功能特性 - ✅ 支持自定义触发器内容 - ✅ 支持自定义菜单样式 - ✅ 智能定位,自动调整菜单位置 - ✅ 流畅的动画效果 - ✅ 支持插槽自定义菜单内容 - ✅ 完整的事件回调 ## 基本使用 ### 基础用法 ```vue ``` ### 自定义菜单样式 ```vue ``` ### 使用插槽自定义菜单 ```vue ``` ## 属性说明 | 属性名 | 类型 | 默认值 | 说明 | |--------|------|--------|------| | `menuList` | Array | `['菜单1', '菜单2', '菜单3']` | 菜单选项列表 | | `menuStyle` | Object | `{}` | 菜单项的自定义样式 | | `interspace` | String/Number | `'10rpx'` | 菜单与触发器的间距 | | `customStyle` | Object/String | - | 触发器的自定义样式 | ### menuList 数据格式 支持以下两种数据格式: ```javascript // 简单字符串数组 menuList: ['选项1', '选项2', '选项3'] // 对象数组(推荐) menuList: [ { label: '选项1', value: 'option1' }, { label: '选项2', value: 'option2' }, { label: '选项3', value: 'option3' } ] ``` ## 事件说明 | 事件名 | 说明 | 回调参数 | |--------|------|----------| | `@open` | 菜单打开时触发 | - | | `@close` | 菜单关闭时触发 | - | | `@change` | 菜单状态改变时触发 | `Boolean` - 是否打开 | | `@menuClick` | 点击菜单项时触发 | `{ value, index }` - 菜单项值和索引 | ## 插槽说明 | 插槽名 | 说明 | |--------|------| | 默认插槽 | 触发器内容 | | `menu` | 自定义菜单内容 | ## 方法说明 | 方法名 | 说明 | 参数 | |--------|------|------| | `close()` | 手动关闭菜单 | - | 使用方法: ```javascript // 通过 ref 调用 this.$refs.dropdown.close() ``` ## 完整示例 ```vue ``` ## 注意事项 1. **定位机制**:组件会自动检测屏幕边界,智能调整菜单位置 2. **动画效果**:内置了流畅的展开/收起动画 3. **点击关闭**:点击遮罩层会自动关闭菜单 4. **自定义菜单**:使用插槽时需要手动调用 `close()` 方法关闭菜单 5. **样式优先级**:`menuStyle` 属性只对默认菜单生效,插槽菜单需要自定义样式 ### 插件如果对你有帮助给个好评吧~