当前位置: 首页 > news >正文

uniapp开发H5、手机APP、微信小程序 可拖动菜单按钮

ml-fab

插件地址:https://ext.dcloud.net.cn/plugin?id=18909

1、可拖拽悬浮按钮 ml-fab,支持自定义插槽,点击可展开一个图标按钮菜单,可随意拖拽。
2、支持自定义插槽,可实现自定义配置。
3、操作简单易上手。

ezgif-4-03caa72376

Snipaste_2024-06-21_14-08-33

ml-fab介绍

安装方式

本组件符合easycom规范,HBuilderX 2.5.5起,只需将本组件导入项目,在页面template中即可直接使用,无需在页面中import和注册components

代码演示

不使用插槽,使用默认配置

<template><ml-fab :fabOption="fabOption" @clickRow="clickRow" @trigger="trigger"></ml-fab>
</template>
<script setup >import { ref } from 'vue';const fabOption = ref({iconPath: "../../static/icons/ml-fab-icon.png",selectIconPath: "../../static/icons/ml-fab-icon-o.png",color: "#fff",selectColor: "#007aff",fontSize: 13,fabBackground: "#a5a5a5",list: [ // 最多支持配置 4 个{title: "收藏",icon: "../../static/icons/ml-fab-menu-item-m.png",selectIcon: "../../static/icons/ml-fab-menu-item-m-o.png"},{title: "搜索",icon: "../../static/icons/ml-fab-menu-item-s.png",selectIcon: "../../static/icons/ml-fab-menu-item-s-o.png"}]});/*** 选中了菜单* @param row list中的配置项* @param index 对应list中的索引*/const clickRow = (row, _index) => {uni.showToast({ title: row.title, icon: "none", mask: false });};/*** 打开/关闭 菜单弹框* @param open true/false*/const trigger = (open) => {uni.showToast({ title: open ? '打开弹框' : '关闭弹框', icon: "none", mask: false });};
</script>

使用自定义插槽,自定义组件配置

<template><ml-fab :fabOption="fabOption" @clickRow="clickRow" @trigger="trigger"><!-- 使用插槽,自定义fab组件:组件颜色 > 橙黄色 --><template v-slot:fab="{ option }"><view style="background: #ffb727;width: 100%;height: 100%;text-align: center;">陌路</view></template><!-- 使用插槽,自定义list组件:list中的option组件颜色 > 蓝色【注意:使用v-slot:list时,v-slot:item将失效】 --><template v-slot:list="{ list }"><view v-for="(item,index) in list" :key="index" @click="clickRow(item, index)"><view style="display: flex;color: blue;">{{item.title}}</view></view></template><!-- 使用插槽,自定义list中的option组件:菜单组件颜色 > 红色【注意:使用v-slot:list时,v-slot:item将失效】 --><template v-slot:item="{ item }"><view style="color: red;text-align: center;"><image :src="item.icon" style="width: 25px;height: 25px;"></image>{{ item.title }}</view></template></ml-fab>
</template>
<script setup>import { ref } from 'vue';const fabOption = ref({iconPath: "../../static/icons/ml-fab-icon.png",selectIconPath: "../../static/icons/ml-fab-icon-o.png",color: "#fff",selectColor: "#007aff",fontSize: 13,fabSlot: true, // 开启插槽配置listSlot: true, // 开启插槽配置itemSlot: true, // 开启插槽配置fabBackground: "#a5a5a5",position: "right",list: [ // 最多支持配置 4 个{title: "收藏",icon: "../../static/icons/ml-fab-menu-item-m.png",selectIcon: "../../static/icons/ml-fab-menu-item-m-o.png"},{title: "搜索",icon: "../../static/icons/ml-fab-menu-item-s.png",selectIcon: "../../static/icons/ml-fab-menu-item-s-o.png"}]});
</script>

props

fabOption【组件配置项】

属性名类型默认值可选值说明是否必填
iconPathString--组件中的图标
selectIconPathString--选中组件时展示的图标
colorString#fff-组件中的字体颜色
selectColorString#007aff-选中组件后的字体颜色
fontSizeNumber13-组件中的字体大小
fabBackgroundString#a5a5a5-组件弹框的背景色
listArray--组件弹框的中显示的菜单配置项,最多展示4个
fabSlotBooleanfalsetrue使用插槽,自定义fab组件
listSlotBooleanfalsetrue使用插槽,自定义list组件
itemSlotBooleanfalsetrue使用插槽,自定义list中的option组件

list[option]【组件配置项】

属性名类型默认值可选值说明是否必填
titleString--弹框中的菜单名称
iconString--菜单图标
selectIconString--选中菜单时的图标
Any--其他自定义参数,点击后尽数返回-

事件 Events

事件名返回参数说明
@triggeropen(Boolen)返回true表示打开弹框,显示菜单,false则关闭
@clickRowoption(row, index)返回当前点击的option配置项参数以及当前菜单的索引

相关文章:

  • YOLO10 用分割数据集训练
  • Java 重载和重写
  • qt可点击的QLabel
  • nacos开启鉴权后,springboot注册失败
  • STC89C52RC单片机设计的FM收音机+自动搜台+存储电台(程序+原理图+PCB)
  • CC6利用链分析
  • BeanUtils拷贝List数据
  • 无忧易售功能:刊登页面文本翻译,无缝对接全球买家
  • DDR自学笔记
  • 前端利用vue如何实现导入和导出功能.md
  • springboot @configuration注解的配置, @bean注解方法a, 在@bean注解 getb(){}需要注入a
  • llm学习-3(向量数据库的使用)
  • 04-《黄蜀葵》
  • 软考的报名详细流程
  • 详解flink sql, calcite logical转flink logical
  • SegmentFault for Android 3.0 发布
  • 2017 前端面试准备 - 收藏集 - 掘金
  • extjs4学习之配置
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • Java教程_软件开发基础
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • redis学习笔记(三):列表、集合、有序集合
  • TCP拥塞控制
  • 笨办法学C 练习34:动态数组
  • 关于Flux,Vuex,Redux的思考
  • 三栏布局总结
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • 数据仓库的几种建模方法
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • 阿里云移动端播放器高级功能介绍
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • $LayoutParams cannot be cast to android.widget.RelativeLayout$LayoutParams
  • (007)XHTML文档之标题——h1~h6
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • (八)Spring源码解析:Spring MVC
  • (二)丶RabbitMQ的六大核心
  • (过滤器)Filter和(监听器)listener
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (十二)springboot实战——SSE服务推送事件案例实现
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • ***测试-HTTP方法
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .mat 文件的加载与创建 矩阵变图像? ∈ Matlab 使用笔记
  • .net core 微服务_.NET Core 3.0中用 Code-First 方式创建 gRPC 服务与客户端
  • @FeignClient注解,fallback和fallbackFactory
  • [ CTF ]【天格】战队WriteUp- 2022年第三届“网鼎杯”网络安全大赛(青龙组)
  • [<死锁专题>]
  • [20161214]如何确定dbid.txt
  • [2544]最短路 (两种算法)(HDU)
  • [AutoSar]BSW_Com07 CAN报文接收流程的函数调用
  • [boost]使用boost::function和boost::bind产生的down机一例
  • [C++] new和delete
  • [C++]模板与STL简介
  • [C++核心编程](四):类和对象——封装
  • [Dxperience.8.*]报表预览控件PrintControl设置