Affix 固钉
将内容吸附在视口顶部或底部,页面滚动到指定偏移后自动固定,常用于固定表格操作栏、工具栏等。
基础用法
基础用法
向下滚动当前页面,观察按钮在接近视口顶部时被固定(position: fixed)。
自定义偏移
自定义偏移
组合内容
组合内容
底部吸附
position="bottom" 将吸附方向改为底部:元素底缘进入距视口底部 offset 距离内时固定于底部。
底部吸附
向下滚动当前页面,观察按钮在接近视口底部时被固定(position: fixed; bottom: 88px,即 offset 值)。
指定滚动容器
target 指定滚动容器(CSS 选择器,默认 window):容器内滚动时吸附判定相对容器可视区;选择器无匹配时 console 告警并回落 window 滚动。固定定位仍相对视口。
指定滚动容器
这是局部滚动容器:向下滚动,按钮吸附到容器可视区顶部(`fixed` 定位相对视口)。容器底部——滚动回来试试。
传送到指定容器(append-to)
append-to 指定目标容器(CSS 选择器):吸附时把内容节点传送到目标容器内——fixed 定位仍相对视口,但节点实际挂载到目标容器下,可绕开 overflow: hidden 等祖先裁切(典型场景:传送到抽屉/弹层内部,配合 target 同一容器滚动);解除吸附时移回占位处原位。目标容器无匹配时 console 告警一次并回落不传送。事件冒泡不受影响(oas-change 为 composed 事件,跨 Shadow 边界)。
传送到目标容器
向下滚动本容器:吸附时按钮节点会被传送到下方虚线目标区内(`fixed` 相对视口不变);滚回解除吸附时移回原位。
吸附状态事件
吸附状态真实翻转时派发 oas-change(detail: { fixed, top })——fixed 是否吸附;top 为吸附参考位置(top 吸附 = offset;bottom 吸附 = 元素当前 top)。
吸附状态事件
尚未吸附
吸附层级(z-index)
z-index 覆盖吸附后 fixed 层的层级(非负整数);缺省走 token 缺省(--oas-z-index-base + --oas-z-sticky)。用于吸附层与页面其他 fixed 元素(吸顶导航、浮层)的层叠协调;非法值回落 token 缺省并告警一次。
z-index=2000
API
oas-affix
属性
| 属性 | 说明 | 类型 | 默认值 |
|---|---|---|---|
append-to | 传送目标容器选择器(CSS 选择器);吸附时内容节点传送到目标容器内(fixed 仍相对视口,可绕开 overflow 祖先裁切),解除吸附移回原位;无匹配时告警一次并回落不传送 | string | — |
offset | 吸附触发距离(px) | string | 0 |
position | 吸附方向:top(默认,顶缘触达吸附)/ bottom(底缘触达吸附);非法值回落 top | AffixPosition | top |
target | 滚动容器选择器(CSS 选择器);选择器无匹配时告警并回落 window 滚动 | string | — |
z-index | 吸附后 fixed 层级覆盖(非负整数;缺省/非法走 token 并告警) | string | — |
事件
| 事件 | 说明 |
|---|---|
oas-change | 吸附状态翻转时派发,detail { fixed, top }:fixed 是否吸附;top 为吸附参考位置(top 吸附 = offset,bottom 吸附 = 元素当前 rect.top) |
插槽
| 名称 | 说明 |
|---|---|
| 默认 | 吸附内容 |
监听 window(或 target 容器)滚动,元素滚出吸附区后固定,内容通过默认插槽传入。