iter(g290): 抽出 trackShift 并接到下拉弹层

This commit is contained in:
HIsheR
2026-10-26 23:20:05 +08:00
parent da166af7c3
commit 9e72607952
6 changed files with 51 additions and 36 deletions
+3 -2
View File
@@ -1,6 +1,6 @@
# @ui-arch 组件库 Agent 文档(无图形版)
> 自动生成于 2026-10-26T15:18:47.384Z,数据源:各包 ua.manifest.json,勿手改。人类版文档站:apps/docs/index.html。
> 自动生成于 2026-10-26T15:19:50.061Z,数据源:各包 ua.manifest.json,勿手改。人类版文档站:apps/docs/index.html。
> 组件 = 普通函数,传 props 返回 DOM;状态用 signal 双向绑定:读 signal() 写 signal(v)。
## 快速上手
@@ -317,6 +317,7 @@ const city = signal(''); select({ options: [{ value: 'bj', label: '北京' }], v
7. 需要允许「不选」的筛选项就开 clearable:有值时右缘出现 ×,点它把值写成空串并回调 onChange(''),键盘在收起态按 Delete / Backspace 等价
8. 候选多时给选项加 group:相邻同组合成一段、组首插灰色小标题(段间有分隔线),过滤后整组无命中时标题一起隐藏——搜索路径与键盘 ↑↓ 仍只走真实选项
9. 没有可见 label 的场合(工具栏、分页条)传 ariaLabel:触发器只显示当前值文案,读屏需要「这个下拉在选什么
10. 弹层展开期间滚动页面或任意滚动容器,会按视口重算上下翻转(与 tooltip 共用 position.ts 的 trackShift);收起即摘监听
现场演示:apps/docs/demo.html#sec-form
@@ -630,7 +631,7 @@ tooltip({ content: '保存后立即生效' }, button({ label: '保存', onClick:
3. 触摸屏没有 hover:手指按下即出场,抬手后停留 1.2 秒再收起,免得手指正挡着就消失
4. 气泡设了 pointer-events: none,不会挡住下面的点击;aria-describedby 已关联,读屏能念出提示文案
5. 方位支持上下左右四向:贴边或工具栏竖排时用 left / right,出场时按该方向剩余空间自动翻到对侧
6. 出场期间滚动页面或任意滚动容器,气泡会按视口重算上下翻转(rAF 节流);收起后监听立即摘掉,不在关闭态空转
6. 出场期间滚动页面或任意滚动容器,气泡会按视口重算上下翻转(rAF 节流,与 select 等浮层共用同一套 trackShift);收起后监听立即摘掉,不在关闭态空转
现场演示:apps/docs/demo.html#sec-tooltip