Skip to content

fix(tour): reposition mask and popover after scroll - #3332

Open
dvd233 wants to merge 1 commit into
jd-opensource:v4from
dvd233:codex/fix-tour-scroll-position-2933
Open

dvd233 wants to merge 1 commit into
jd-opensource:v4from
dvd233:codex/fix-tour-scroll-position-2933

Conversation

@dvd233

@dvd233 dvd233 commented Sep 13, 2026

Copy link
Copy Markdown

这个 PR 做了什么?

修复 Tour 组件在页面滚动或窗口大小变化后,遮罩高亮区域和目标 Popover 仍停留在旧坐标的问题。

Tour 的遮罩使用固定定位,Popover 通过目标元素矩形计算绝对位置;此前两者只在挂载或打开时测量一次。现在仅在组件可见期间监听捕获阶段的 scrollresize,并在隐藏或卸载时移除监听,保持现有 API 不变。

这个 PR 是什么类型?

  • fix: bug 修复
  • test: 测试用例

这个 PR 涉及以下平台:

  • NutUI H5 @nutui/nutui
  • NutUI Taro @nutui/nutui-taro

相关 Issue:

Fixes #2933

自测说明:

  • 新增 Tour 遮罩滚动重定位回归测试
  • 新增 Popover 目标滚动重定位回归测试
  • pnpm exec vitest run --config vite.config.ts src/packages/__VUE/tour/__tests__/tour.spec.tsx src/packages/__VUE/popover/__tests__/popover.spec.tsx:14/14 passed(重复运行两次)
  • pnpm exec eslint src:通过
  • pnpm exec vue-tsc --noEmit -p tsconfig.json:通过
  • pnpm build:通过
  • pnpm build:taro:通过(未修改 Taro 源文件)
  • git diff --check:通过

全量 Vitest 为 492/495 通过;剩余 3 个是未修改 calendarcard 测试的日期敏感既有失败。

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.

【Tour组件】页面滚动后Tour组件中的Mask气泡错位

1 participant