Skip to content

fix(uiux): 修复模型选择浮层长列表滚动回跳与选中标记文本裸露缺陷 - #220

Merged
lioensky merged 1 commit into
lioensky:mainfrom
infinite-vector:fix/model-picker-scroll-churn-and-check-icon
Oct 1, 2026
Merged

lioensky merged 1 commit into
lioensky:mainfrom
infinite-vector:fix/model-picker-scroll-churn-and-check-icon

Conversation

@infinite-vector

Copy link
Copy Markdown
Contributor

1. 缺陷背景

  • 在模型选择器中输入搜索词过滤长列表时,鼠标在列表下半区划过会高频触发 mouseenter 重绘,导致 scrollIntoView 盲目抓取视口外顶部首个已选项,产生滚动条自动向上跳跃抖动的交互缺陷;
  • 当前选中模型项因 optionRole 降级,进入未映射图标的语义槽,导致纯英文字符串 'check' 裸露悬浮在右上角。

2. 解决方案

  • 引入 scrollActiveIntoView 判定门禁,仅允许键盘上下导航和搜索重置时触发滚动,鼠标悬停严格禁止抢占滚动条;
  • 纠偏 scrollIntoView 靶心为真正的 [data-active="true"] 光标项;
  • 为多分组模型补充复合 viewKey(${group}:${id}),消除同名模型跨分组状态竞争;
  • 统一挂载原生内联 mountUiuxModelSelectCheck SVG,彻底消除 'check' 裸露文本。

3. 测试验证

  • 运行 node --test tests/uiux-primitives.test.mjs,全部 53 项单元测试 100% PASS 通过;
  • 实测长列表高速滑动鼠标晃动零回弹,图标展示精致稳定。(其实只有一个兜底的对勾)

应该没波及别的代码链路?

@lioensky
lioensky merged commit f2f32ba into lioensky:main Oct 1, 2026
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants