仅桌面端保证样式
Popper 浮层基础件
所有浮层组件(Tooltip / Popover / Dropdown / Select 等)共用的定位底座:floating-ui 定位、五种触发方式、延迟显隐与箭头、宽度跟随与虚拟触发。做自定义浮层时可直接用它,普通场景请先用上层组件。
悬停触发
点击触发与手动模式
trigger: manual 时由 visible 完全受控:
宽度跟随
match-width 让浮层最小宽度取触发器宽度,下拉面板与触发器等宽时最省心。
虚拟触发
浮层不必自带触发元素:virtual-triggering 关掉内置包裹元素,参考元素改由 virtual-ref 提供,于是一个浮层可以服务多个目标——悬停下面任意一格,同一个浮层就锚到当前格。
今日新增
待办事项
异常告警
Popper Props
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| placement | 定位方向(floating-ui placement) | string | bottom |
| trigger | 触发方式 | hover | click | focus | contextmenu | manual | hover |
| visible | 浮层显隐(manual 模式受控) | boolean | false |
| show-after / hide-after | 出现 / 隐藏延迟(毫秒)。隐藏延迟对所有触发方式生效(click 再次点击、focusout 同样延时收起);仅外部按下与 disabled 转真走立即收起 | number | 0 / 200 |
| hide-on-blur | 延迟隐藏期间,指针移入浮层本体取消关闭(hover 保活);置 false 不绑定浮层悬停监听 | boolean | true |
| show-arrow | 显示箭头 | boolean | false |
| offset | 主轴偏移(浮层与触发器的间距,px) | number | 8 |
| match-width | 浮层最小宽度跟随触发器宽度(下拉选项与触发器等宽的场景) | boolean | false |
| disabled | 禁用触发;打开期间转真立即收起 | boolean | false |
| popper-class | 浮层类名 | string | array | object | |
| transition-name | 过渡名 | string | eb-popper-fade |
| virtual-triggering | 虚拟触发:不渲染内置触发器包裹元素,参考元素改由 virtual-ref 提供(供上层组件以自有元素驱动) | boolean | false |
| virtual-ref | 外部参考元素本身(非 Vue ref)。可在挂载后异步补入或替换,底座会重绑触发事件 | HTMLElement | null | null |
Popper Exposes
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| show | 当前是否打开(暴露的 ref,实例上读到的即布尔值) | boolean | false |
| open() | 命令式打开(受 show-after 延时与 disabled 拦截) | () => void | — |
| close() | 命令式关闭(走 hide-after 延时) | () => void | — |
| update() | 手动重算定位(触发器或内容尺寸变化时) | () => Promise<void> | — |
| referenceRef / floatingRef | 触发器与浮层的元素引用(实例上解包为元素) | HTMLElement | null | — |
Popper Slots / Events
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| trigger(插槽) | 触发元素 | — | — |
| default(插槽) | 浮层内容 | — | — |
| show / hide | 浮层显隐回调 | () => void | — |