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

news2024/12/23 20:06:42

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配置项参数以及当前菜单的索引

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1868855.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

197.回溯算法:复原IP地址(力扣)

代码解决 class Solution { public:// 存储最终结果的向量vector<string> result;// 判断字符串s从start到end范围内的子串是否是一个合法的IP地址段bool isValid(const string& s, int start, int end){if (start > end) {return false; // 起始位置大于结束位置…

设计师必备的交互原型图软件

如果你是UI/UX设计师&#xff0c;你肯定会在工作中涉及到交互原型图的设计。在设计交互原型图时&#xff0c;我们通常需要找到一些适合自己的交互原型图设计软件来制作高质量的交互原型图。那么我们应该如何选择合适的交互原型图设计软件呢&#xff1f;来自10年的高级交互设计师…

定制化、精细化、场景化AI训练数据趋于基础数据服务市场主流

算法、算力和数据共同构成了AI产业链技术发展的三大核心要素。在人工智能行业发展进程中&#xff0c;有监督的深度学习算法是推动人工智能技术取得突破性发展的关键技术理论&#xff0c;而大量训练数据的支撑则是有监督的深度学习算法实现的基础。算法模型从技术理论到应用实践…

stencil 组件

stencil 组件 装饰器生命周期应用加载事件 组件定义组件如何响应数据变化 组件使用如何传递 slot如何暴露组件内部的方法供外部使用&#xff1f;Element 装饰器 Host 组件样式函数组件 stencil 提供一些装饰器、生命周期钩子和渲染函数去编写一个组件。 装饰器 装饰器是一组用…

第 3 章使用图像和标签

现在您已经对 SwiftUI 有了基本的了解,并了解了如何显示文本内容,现在是时候学习如何在应用中显示图像了。在本章中,我们将探讨Label最常见的用户界面组件之一的用法,以及Image用于在屏幕上渲染图像的视图。与上一章中所做的类似,我将通过构建一个简单的演示向您展示如何使…

Navicat 外网连接 mysql (1、通过SSH方式内网访问 2、对外开放3306端口)

1、通过SSH方式内网访问 直接常规方式使用IP、账号密码连接&#xff0c;失败 SSH方式&#xff1a; 常规 选项卡中&#xff1a;localhost录入数据库账号密码 SSH 选项卡中&#xff1a;勾选使用SSH&#xff0c;输入服务器IP、账号、密码 如果出现该错误&#xff0c;可能是服务器…

会计报表分析

目录 一. 会计报表的种类 \quad 一. 会计报表的种类 \quad 反应财务状况的是资产负债表 反应经营成果的是利润表 有时间点的就是静态表 动态表就是有一个区间的, 比如一年, 一个季度等

PLC网关如何选择?plc网关作用-天拓四方

一、PLC网关在工业自动化领域的重要性和作用 PLC网关在工业自动化领域的重要性和作用不言而喻。作为工业自动化系统的重要组成部分&#xff0c;PLC网关起到了关键的桥梁作用&#xff0c;实现了PLC与其他设备、系统之间的数据传输和通信。 首先&#xff0c;PLC网关的重要性体现…

5G赋能安防视频监控:EasyCVR视频汇聚融合创新技术,共筑多场景安全防线

随着科技的快速发展&#xff0c;第五代移动通信技术&#xff08;5G&#xff09;已逐渐成为我们生活中的重要组成部分。其中&#xff0c;5G技术以其超高速、低延迟、大连接数的特点&#xff0c;正在深刻改变着我们的生活方式和社会运行模式。安防监控领域作为社会安全的重要组成…

如何实现智慧农田的精准灌溉

如何实现智慧农田的精准灌溉 智慧农田的精准灌溉是现代农业技术发展的重要组成部分&#xff0c;它集成了物联网、大数据分析、人工智能以及现代水利技术&#xff0c;旨在通过实时监测土壤湿度、气象条件及作物生长状况&#xff0c;实现水资源的高效利用和作物产量、品质的双重…

智慧海洋灾害监测预警系统解决方案

一、概述 近年来&#xff0c;我国海洋经济持续增长&#xff0c;为我国综合国力带来了新机遇。但是&#xff0c;每年由于海洋灾害带来的损失也不可忽略&#xff0c;这些灾害包括&#xff1a;风暴潮、海浪、海冰、海啸动力环境灾害、赤潮、绿潮等等。针对目前海洋监管力量薄弱&am…

Ubuntu20.04离线安装Docker

链接&#xff1a;https://pan.baidu.com/s/10OLClTHSIJY-_nbldcoFFQ 提取码&#xff1a;x4nt --来自百度网盘超级会员V4的分享 1.下载3个docker离线安装包&#xff0c;下载网址&#xff1a; https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/ 2.把…

怎么隐藏宝塔面板左上角绑定的手机号码?

宝塔面板后台的左上角会显示我们绑定的宝塔账号&#xff08;手机号码&#xff09;&#xff0c;每次截图的时候都要去抹掉这个号码&#xff0c;那么能不能直接将这个手机号码隐藏掉呢&#xff1f; 如上图红色箭头所示的手机号码&#xff0c;其实就是我们绑定的宝塔账号&#xff…

Android Studio无法正确引入包内存在的类

Android Studio 无法识别同一个 package 里的类&#xff0c;显示为红色&#xff0c;但是 compile 没有问题。 重启&#xff0c;rebuild,clean都没有用。 多半是因为 Android Studio 之前发生了错误&#xff0c;某些 setting 出了问题。 解决方法如下&#xff1a; 点击菜单中的…

生命在于折腾——Macbook虚拟机开启360核晶

首先启动PD虚拟机&#xff0c;打开360&#xff0c;发现提示如下&#xff1a; 此时将虚拟机关机。 打开该虚拟机设置&#xff1a; 将虚拟机监控程序改为Parallels&#xff0c;并启动nested虚拟化。 改好后截图如下&#xff1a; 保存设置&#xff0c;开机 此时就可以开启了…

执行yum命令报错Could not resolve host: mirrors.cloud.aliyuncs.com; Unknown error

执行yum命令报错 [Errno 14] curl#6 - "Could not resolve host: mirrors.cloud.aliyuncs.com; Unknown error 修改图中所示两个文件&#xff1a; vim epel.repo vim CentOS-Base.repo 将所有的http://mirrors.cloud.aliyuncs.com 修改为http://mirrors.aliyun.com。 修改…

【漏洞复现】FastAdmin——任意文件读取漏洞

声明&#xff1a;本文档或演示材料仅供教育和教学目的使用&#xff0c;任何个人或组织使用本文档中的信息进行非法活动&#xff0c;均与本文档的作者或发布者无关。 文章目录 漏洞描述漏洞复现测试工具 漏洞描述 FastAdmin是一个免费开源的后台管理框架&#xff0c;其lang存在…

多功能气象传感器的工作原理

TH-WQX9多功能气象传感器是一种集成了多种传感器技术的气象观测装置&#xff0c;旨在同时测量和监测大气中的多个气象要素&#xff0c;以提供全面、准确的气象信息。以下是关于多功能气象传感器的详细介绍&#xff1a; 技术原理 多功能气象传感器采用多种传感器技术相结合&…

6月27日-四象限法则

四象限法则&#xff0c;又称为艾森豪威尔矩阵&#xff08;Eisenhower Matrix&#xff09;&#xff0c;是一种时间管理和任务优先级排序的方法。它将任务分为四个象限&#xff0c;帮助个人识别哪些任务最重要&#xff0c;哪些可以推迟或委托&#xff0c;以及哪些可以完全忽略。以…

测试:MyBatisDemo

MyBatis Demo 先创建一个 Maven 项目&#xff0c;名称为 MyBatis01。 之后创建并连接 MySQL 数据库&#xff0c;然后执行 sql 脚本&#xff1a; CREATE DATABASE mybatis;USE mybatis;DROP TABLE IF EXISTS user;CREATE TABLE user ( id int(20) NOT NULL, name varchar(30)…