Skip to content

FloatingBubble 浮动气泡

介绍

悬浮在页面边缘的可点击气泡。

引入

js
import { createApp } from 'vue';
import { FloatingBubble } from '@szhn/dh-design-mobile';

const app = createApp();
app.use(FloatingBubble);

代码演示

基础用法

浮动气泡默认展示在右下角,并允许在 y 轴方向上下拖拽。

html
<van-floating-bubble icon="chat" @click="onClick" />

自由拖拽和磁吸

允许 x 和 y 轴方向拖拽,吸附到 x 轴方向最近一边。

html
<van-floating-bubble axis="xy" icon="chat" magnetic="x" />

双向绑定

使用 v-model:offset 控制 FloatingBubble 的位置。

html
<van-floating-bubble v-model:offset="offset" axis="xy" icon="chat" magnetic="x" />

API

Props

参数说明类型默认值
v-model:offset控制气泡位置OffsetType默认右下角坐标
axis拖拽的方向,xy 代表自由拖拽,lock 代表禁止拖拽'x' | 'y' | 'xy' | 'lock'y
magnetic自动磁吸的方向'x' | 'y'-
icon气泡图标名称或图片链接,等同于 Icon 组件的 name 属性string-
gap气泡与窗口的最小间距,单位为 pxnumber | { x: number, y: number }24
teleport指定挂载的节点,等同于 Teleport 组件的 to 属性string | Elementbody

Events

事件名说明回调参数
click点击组件时触发MouseEvent
offset-change由用户拖拽导致位置改变后触发{x: string, y: string}

Slots

名称说明
default自定义气泡显示内容

主题定制

样式变量

组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 ConfigProvider 组件。

名称默认值描述
--van-floating-bubble-size48px浮动气泡的尺寸
--van-floating-bubble-initial-gap24px气泡与窗口的初始间距
--van-floating-bubble-icon-size28px气泡图标的大小
--van-floating-bubble-backgroundvar(--van-primary-color)气泡的背景色
--van-floating-bubble-colorvar(--van-background-2)气泡的文字颜色
--van-floating-bubble-z-index999气泡的层级
--van-floating-bubble-border-radius--van-floating-bubble-border-radius气泡的圆角大小