Skip to content

FloatingToolbar 浮动工具条

AuFloatingToolbar 根据目标矩形定位,并在上方空间不足时自动切换到下方。

基础用法

工具条内容由默认插槽提供,triggerRect 可通过目标元素的 getBoundingClientRect() 获取。

锚点工具条

点击锚点打开;滚动时刷新位置,点击外部关闭。

vue

目标矩形

triggerRect 至少应提供以下数值字段。可以直接传 DOMRect,也可以保存为普通对象:

js
const { top, right, bottom, left, width, height } = element.getBoundingClientRect();
toolbarRect.value = { top, right, bottom, left, width, height };

若目标会随页面滚动,传入 refreshTarget 元素引用或 refreshSelector,组件会重新读取矩形;找不到目标时以 target-missing 原因关闭。

FloatingToolbar API

Attributes

属性说明类型默认值
modelValue / v-model显式控制显示;为 null 时跟随 triggerRectboolean / nullnull
triggerRect定位目标矩形DOMRect / Record<string, number> / nullnull
placement首选方向auto / top / bottomauto
gap工具条与目标的距离,单位 pxnumber6
viewportPadding与视口边缘的最小距离,单位 pxnumber8
refreshTarget滚动/缩放时重新读取矩形的元素或选择器string / HTMLElement''
refreshSelectorrefreshTarget 的字符串兼容属性string''
keepVisibleTarget点击该元素内部时不关闭string / HTMLElement''
keepVisibleSelectorkeepVisibleTarget 的字符串兼容属性string''
ariaLabel工具条无障碍名称string工具条
teleported是否传送到 appendTobooleantrue
appendToTeleport 目标string / HTMLElementbody
zIndex工具条层级number9000

Events

事件名说明参数
update:modelValue显示状态变化(visible: boolean)
show从隐藏变为显示时触发
hide隐藏时触发(reason: string)

关闭原因可能为 apimodeltriggeroutsidescrolltarget-missing

Slots

插槽名作用域参数说明
default{ hide, placement }工具条内容与当前实际方向

默认插槽中可直接使用 AuButton,也可放入由 AuButtonGroupAuButtonGroupItem 组成的完整控制组,不依赖内部类名。

Exposes

属性或方法说明
show(rect?)使用新矩形或已保存矩形显示工具条
hide(reason?)主动隐藏,默认 reason 为 api
updatePosition()使用当前矩形重新定位
toolbarRef工具条根元素引用

Aurora Plus · Vue 3 Component Library