File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 7676
7777> 取舍:为了让用户能把行星对应到功能,** 牺牲了“新手期后才隐藏副标题”的原设计** 。隐喻名保留(品牌),功能名常驻(可用性)。移动端网格/侧边栏仍按新手期门控,如需全导航面一致可后续对齐。
7878
79+ ## 后续演进 2(第三层根因:canvas 被根布局拦截点击)
80+
81+ 标签修复后内测仍反馈“点击仍无响应”。** ` document.elementFromPoint ` 复现** :在行星位置取最上层元素,返回的是 AppLayout 根 div(` flex flex-col h-screen overflow-hidden ` ,` pointer-events:auto ` )而非 canvas。
82+
83+ ** 根因** :canvas 容器原为 ` z-index:-10 ` ,落在根 div(z-auto、` h-screen ` 铺满全屏)之后。概览模式点击行星时,命中检测先碰到透明的根 div(无点击处理器)→ 点击被吞掉。此前用 ` dispatchEvent ` 直接打到 canvas 的合成测试绕过了命中检测,造成“点击正常”的假象。
84+
85+ ** 修复** (` 168df42 ` ):canvas 容器 ` z-index:-10 → z-0 ` ,位于根 div 空白区之上可接收点击,仍低于所有 UI 浮层(标题栏 z-50 / FunctionalOverlay z-10 / 首页按钮 z-20 / 引导 z-40+ / Radix 弹窗走 portal)。修复后 ` elementFromPoint ` 在行星位置返回 CANVAS。
86+
7987## 教训补充
8088
8189- ** “无法对应到功能”优先查标签可发现性** :交互对象可见 ≠ 可用。若对象本身能点击跳转,但用户仍报“不可用”,多半是** 缺少可识别的标签** ,而非点击逻辑坏了。
82- - ** 复现优先于推测** :本轮首轮仅凭代码推测“重复行星”为唯一根因,未复现;直到浏览器截图才看到“无标签”这个真正根因。debug-sop 第二步“复现”不可跳。
90+ - ** “点击无响应”用 ` elementFromPoint ` 查命中** :合成事件(dispatchEvent)会绕过命中检测造成假阳性;必须用 ` elementFromPoint ` 或真实鼠标事件验证“点击实际落在哪个元素”。透明且 pointer-events: auto 的全屏容器是经典的点击拦截陷阱。
91+ - ** 负 z-index 的背景层会被根布局挡住点击** :交互式背景(如 3D canvas)不能用负 z-index,否则落到根 div 之后被其透明盒拦截;应置于根 div 之上、UI 浮层之下。
92+ - ** 复现优先于推测** :本问题有三层根因(重复行星/无标签/canvas 被拦截),首轮仅凭代码推测只命中其一;逐层浏览器复现才全部暴露。debug-sop 第二步“复现”不可跳。
8393
8494## 相关提交
8595
8696- ` ff67320 ` fix(3d): 移除晨曦穹顶场景重复的行星系统,导航行星统一由 SpatialNav 渲染
8797- ` b605a6f ` fix(3d): 概览模式常驻显示模块标签与功能副标题,解决 3D 物体无法对应到功能
98+ - ` 168df42 ` fix(3d): canvas 层级提至 z-0,修复概览模式点击被根布局 div 拦截
You can’t perform that action at this time.
0 commit comments