Skip to content

xtf-floating-bubble

组件说明

xtf-floating-bubble 是浮动气泡组件,用于在页面边缘展示可拖拽的悬浮按钮。支持展开菜单、拖拽吸附、脉冲动画、徽标和多种视觉变体,适用于快捷操作、客服入口和分享按钮等场景。


基础用法

1. 最简示例

vue
<template>
  <xtf-floating-bubble icon="share" @click="onBubbleClick" />
</template>

<script>
export default {
  methods: {
    onBubbleClick() {
      console.log('气泡点击')
    }
  }
}
</script>

2. 带菜单

通过 menu 设置展开菜单项:

vue
<template>
  <xtf-floating-bubble icon="add" :menu="menuItems" @menu-select="onMenuSelect" />
</template>

<script>
export default {
  data() {
    return {
      menuItems: [
        { key: 'share', icon: 'share', shortLabel: '分享' },
        { key: 'edit', icon: 'edit', shortLabel: '编辑' },
        { key: 'delete', icon: 'delete', shortLabel: '删除', danger: true }
      ]
    }
  },
  methods: {
    onMenuSelect(item) {
      console.log('选中:', item.key)
    }
  }
}
</script>

3. 带徽标

通过 badge 显示未读数量:

vue
<template>
  <xtf-floating-bubble icon="chat" :badge="5" />
</template>

4. 自定义样式

通过 variantshapecolor 自定义外观:

vue
<template>
  <xtf-floating-bubble
    icon="favorite"
    label="收藏"
    variant="solid"
    shape="squircle"
    color="#EF4444"
    :show-pulse="true"
  />
</template>

全部属性

属性类型默认值作用描述适用范围
iconString'share'图标名称图标
labelString''标签文字标签
badgeString | Number''徽标内容徽标
menuArray[]菜单项列表菜单
sizeNumber112气泡大小(rpx)尺寸
variantString'solid'视觉变体视觉样式
shapeString'circle'形状:'circle' / 'squircle' / 'tile'形状
menuVariantString'solid'菜单项视觉变体菜单样式
menuLayoutString'fan'菜单布局:'fan' / 'column' / 'grid'菜单布局
colorString''自定义背景色颜色
gradientEndColorString''渐变终止色渐变
textColorString''自定义文字颜色文字颜色
showPulseBooleantrue是否显示脉冲动画动画
showMaskBooleantrue是否显示遮罩遮罩
closeOnMaskBooleantrue点击遮罩是否收起关闭行为
autoCollapseBooleantrue是否自动收起自动收起
animationTypeString'lift'动画类型动画
animationDurationString | Number360动画时长(ms)动画
animationStaggerString | Number42菜单项依次出现的间隔(ms)动画
dockString'auto'吸附方向:'auto' / 'left' / 'right'吸附
defaultPosition / initialPositionArray | Objectnull / null初始坐标,支持 [x, y]{ x, y }initialPosition 优先初始位置
disabledBooleanfalse是否禁用禁用
draggableBooleantrue是否可拖拽拖拽
snapToEdgeBooleantrue是否吸附边缘吸附
edgeOffsetNumber24边缘偏移(rpx)偏移
gapNumber0菜单项间距(rpx);0 使用组件自适应间距菜单
expandedBooleanfalse是否展开展开状态
customStyleString | Object''自定义样式动态样式覆盖

事件

事件名称触发时机回调参数参数说明
click点击气泡时触发--
menu-select选择菜单项时触发(item)归一化后的菜单项,含 keylabelshortLabeliconthemecolorbadgedangerdisabled
update:expanded展开状态变化时触发(expanded)展开状态
change位置变化时触发(position)当前位置

主题说明

  • 图标使用 xtf-icon 组件
  • 徽标使用 xtf-badge 组件
  • 拖拽使用 movable-area / movable-view 原生组件
  • 脉冲动画使用 CSS 动画
  • 菜单项支持 5 种主题色

如需全局调整主题,请在 xtf-config-provider 或主题配置中覆盖相关 CSS 变量。

MIT Licensed