修复游玩页面板不滚动规则被 workbench 祖先规则压掉
- .platform-tab-panel--game-play 覆盖带上 .platform-desktop-shell--workbench 祖先,压过 overflow: auto - E2E 游玩页断言补整页与面板的横向溢出测量,避免面板 overflow-x: hidden 静默裁切漏检 - 修正 E2E 探针里重复的 panelOverflowY 键名,拆成 panelOverflowY 与 panelOverflowStyle - 同步里程碑文档与 pitfalls 同日条目(单类名覆盖被祖先规则压掉、守卫实际为空)
This commit is contained in:
@@ -6125,3 +6125,11 @@ Cocos Creator 根目录由 `package.json.creator.version` 与普通 `assets/`
|
||||
- **处理**:`activeAppPageRoutes` 给应用写入的历史条目补内部深度标记(`push` 时 +1、`replace` 保持),新增 `hasAppHistoryBackEntry()`;详情/游玩页的返回改为「有应用内历史就 `window.history.back()`(`popstate` 已由 `ActiveApp` 同步舞台),否则 `replaceAppHistoryPath` 兜底到广场/详情」。深度标记而不是只看「有没有 state」是必要的:直接打开深链、或原生壳通过 host bridge 补写首条目时,`history.back()` 会直接退出应用。
|
||||
- **判据**:真实 Chromium(dev 栈 390x844)实测 `/games` → 详情 → 返回 = `/games`;深链直开 `/games/detail?id=…` → 返回 = `/games`;详情 → 立即玩 → 返回详情 = `/games/detail?id=…`。jsdom 侧 `activeAppPageRoutes.test.ts` 锁深度标记语义,`PlatformEntryActiveFlowShell.test.tsx`「游戏详情返回」两条锁原生返回与深链兜底。
|
||||
- **关联**:`src/routing/activeAppPageRoutes.ts`、`src/ActiveApp.tsx`、`src/components/platform-entry/PlatformEntryActiveFlowShell.tsx`、`src/components/game-distribution/GameDetailPage.tsx`。
|
||||
|
||||
## 2026-09-30 单类名覆盖被 workbench 祖先规则压掉,游玩页的「不滚动」守卫实际是空的
|
||||
|
||||
- **现象**:给游玩页面板加的 `.platform-tab-panel--game-play { overflow: hidden }` 看起来生效(类挂上了、单测断言类名也过),但真实 Chromium 里 `getComputedStyle(panel).overflowY` 是 `auto`——守卫没生效,只是当时内容恰好没溢出(`panelOverflowY = 0`),所以肉眼和 jsdom 都看不出来。
|
||||
- **根因**:`.platform-desktop-shell--workbench .platform-tab-panel { overflow: auto }`(`src/index.css` 文件末尾附近)特异性是 (0,2,0),而且它在文件里更靠后,把单类名 (0,1,0) 的覆盖压掉了。面板在所有舞台都渲染在这层 workbench 容器里,所以这个覆盖永远轮不到生效。
|
||||
- **处理**:覆盖规则带上同样的祖先作用域,`overflow: hidden` 用两个选择器(单类名 + `.platform-desktop-shell--workbench .platform-tab-panel.platform-tab-panel--game-play`)一起写,既压得过 workbench 规则也不依赖文件顺序。
|
||||
- **判据**:真实 Chromium(dev 栈 390x844 / 360x640 / 844x390 横屏矮视口)实测 `overflowY=hidden`、面板与整页横竖都不溢出,同时广场舞台仍是 `overflowY=auto` 且内容可滚(689px)。同类问题排查姿势:改 `.platform-tab-panel` 或任何 workbench 内元素的样式,先在浏览器里读 `getComputedStyle`,别只看类名/源码顺序。
|
||||
- **关联**:`src/index.css`(`.platform-tab-panel--game-play` 与 `.platform-desktop-shell--workbench .platform-tab-panel`)、`scripts/check-game-distribution-web-e2e.mjs`、`src/components/game-distribution/gameDistribution.css`。
|
||||
|
||||
Reference in New Issue
Block a user