UNPKG

sard-uniapp

Version:

sard-uniapp 是一套基于 Uniapp + Vue3 框架开发的兼容多端的 UI 组件库

172 lines (115 loc) 8.46 kB
--- nav: 组件 title: Fab subtitle: 悬浮按钮 group: 反馈组件 version: 1.5+ --- ## 介绍 悬浮按钮,点击可展开扩展按钮。 ## 引入 ```ts import Fab from 'sard-uniapp/components/fab/fab.vue' import FabItem from 'sard-uniapp/components/fab-item/fab-item.vue' ``` ## 代码演示 ### 基础使用 设置 `item-list` 属性配置扩展按钮,监听 `select` 事件来知晓用户点击了哪个按钮。 @code('${DEMO_PATH}/fab/demo/Basic.vue') ### 自定义颜色 设置 `background` 属性以及按钮项的 `background` 自定义背景色。 @code('${DEMO_PATH}/fab/demo/Color.vue') ### 隐藏按钮名称 默认会显示按钮项的 `name` 属性,可以设置 `hide-name` 属性进行隐藏。 @code('${DEMO_PATH}/fab/demo/HideName.vue') ### 左上角显示 按钮默认显示在右下角,设置 `left``top` 可以让其显示在左上角。 @code('${DEMO_PATH}/fab/demo/TopLeft.vue') ### 右上角显示 按钮默认显示在右下角,设置 `top` 会将其从底部显示在顶部。 @code('${DEMO_PATH}/fab/demo/TopRight.vue') ### 左下角显示 按钮默认显示在右下角,设置 `left` 会将其从右边显示在左边。 @code('${DEMO_PATH}/fab/demo/BottomLeft.vue') ### 自定义图标 使用 `icon``icon-family` 可自定义悬浮按钮图标。 @code('${DEMO_PATH}/fab/demo/Icon.vue') ### 自定义插槽内容 <sup>1.24.3+</sup> 使用 `default` 插槽自定义入口按钮内容,使用 `list` 插槽自定义扩展按钮内容,需要自行循环 `FabItem` 组件。 @code('${DEMO_PATH}/fab/demo/Slots.vue') ### 可拖拽的 <sup>1.24.2+</sup> 设置 `draggable` 属性,悬浮按钮展示在右下角,允许在 y 轴方向上下拖拽。 @code('${DEMO_PATH}/fab/demo/Draggable.vue') ### 自由拖拽和磁吸 <sup>1.24.2+</sup> `axis` 属性设置允许在 xy 轴方向拖拽,`magnet` 属性设置松开手指后吸附到指定轴方向的最近一边。 @code('${DEMO_PATH}/fab/demo/Magnet.vue') ### 双向绑定 <sup>1.24.2+</sup> 使用 `v-model:offset` 控制悬浮按钮的位置。 @code('${DEMO_PATH}/fab/demo/Offset.vue') ## API ### FabProps | 属性 | 描述 | 类型 | 默认值 | | ----------------------------------- | --------------------------------------------------------- | ------------------------------ | ------ | | root-class | 组件根元素类名 | string | - | | root-style | 组件根元素样式 | StyleValue | - | | top | 设置距离窗口顶部的距离,优先级比 `bottom` 高 | string | - | | right | 设置距离窗口右边的距离 | string | - | | bottom | 设置距离窗口底部的距离 | string | - | | left | 设置距离窗口左边的距离,优先级比 `right` 高 | string | - | | color | 设置按钮图标的颜色 | string | - | | background | 设置按钮的背景色 | string | - | | icon | 设置入口按钮的图标 | string | - | | visible-icon <sup>1.24.3+</sup> | 设置弹出扩展按钮时的入口按钮的图标 | string | - | | icon-family | 设置入口按钮的图标族 | string | - | | item-list | 设置扩展按钮 | FabItem[] | [] | | hide-name | 是否隐藏按钮名称 | boolean | false | | overlay-closable | 点击遮罩是否隐藏扩展按钮 | boolean | false | | duration | 扩展按钮显隐动画时长,单位 ms | number | 150 | | draggable <sup>1.24.2+</sup> | 是否可拖拽 | boolean | false | | axis <sup>1.24.2+</sup> | 允许拖拽的方向轴 | 'x' \| 'y' \| 'both' \| 'none' | 'y' | | magnet <sup>1.24.2+</sup> | 吸附到指定轴最近的一边,在拖拽时使用 | 'x' \| 'y' | - | | gap-x <sup>1.24.2+</sup> | 悬浮按钮与窗口左右两边的最小间距,单位为 px,在拖拽时使用 | number | 24 | | gap-y <sup>1.24.2+</sup> | 悬浮按钮与窗口上下两边的最小间距,单位为 px,在拖拽时使用 | number | 24 | | offset (v-model) <sup>1.24.2+</sup> | 控制悬浮按钮的位置,在拖拽时使用 | { x: number; y: number } | - | | navbar-height <sup>1.24.3+</sup> | 自定义顶部导航栏的高度,在拖拽时使用 | number | 0 | | tabbar-height <sup>1.24.3+</sup> | 自定义底部标签栏的高度,在拖拽时使用 | number | 0 | ### FabSlots <sup>1.24.3+</sup> | 插槽 | 描述 | 属性 | | ------- | ------------------ | ------------------------------------------------------- | | default | 自定义入口按钮内容 | { visible: boolean } | | list | 自定义扩展按钮内容 | { onItemClick: (item: FabItem, index: number) => void } | ### FabEmits | 事件 | 描述 | 类型 | | -------------------------------- | ---------------------------- | ------------------------------------------ | | click | 点击入口按钮时触发 | (event: any) => void | | select | 点击扩展按钮时触发 | (item: FabItem, index: number) => void | | update:offset <sup>1.24.2+</sup> | 因用户拖拽导致位置改变时触发 | (offset: { x: number; y: number }) => void | ### FabItem | 属性 | 描述 | 类型 | 默认值 | | ----------- | ------------ | ------ | ------ | | name | 按钮名称 | string | - | | color | 按钮图标颜色 | string | - | | background | 按钮背景色 | string | - | | icon | 按钮图标 | string | - | | icon-family | 按钮图标族 | string | - | ### FabItemProps <sup>1.24.3+</sup> | 属性 | 描述 | 类型 | 默认值 | | ----------- | -------------- | ---------- | ------ | | root-class | 组件根元素类名 | string | - | | root-style | 组件根元素样式 | StyleValue | - | | name | 按钮名称 | string | - | | color | 按钮图标颜色 | string | - | | background | 按钮背景色 | string | - | | icon | 按钮图标 | string | - | | icon-family | 按钮图标族 | string | - | ### FabItemSlots <sup>1.24.3+</sup> | 插槽 | 描述 | 属性 | | ------- | -------------- | ---- | | default | 自定义按钮内容 | - | ### FabItemEmits <sup>1.24.3+</sup> | 事件 | 描述 | 类型 | | ----- | -------------- | -------------------- | | click | 点击按钮时触发 | (event: any) => void | ## 主题定制 ### CSS 变量 @code('./variables.scss#variables')