Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Nov 28, 2025

🤔 这个 PR 的性质是?

  • 日常 bug 修复
  • 新特性提交
  • 文档改进
  • 演示代码改进
  • 组件样式/交互改进
  • CI/CD 改进
  • 重构
  • 代码风格优化
  • 测试用例
  • 分支合并
  • 其他

🔗 相关 Issue

💡 需求背景和解决方案

问题描述:
当页面缩放(如放大到110%或缩小)时,Select 组件的 onScrollToBottom 事件无法正常触发,导致通过滚动事件加载选项的选择器无法加载更多数据。

根本原因:
packages/components/popup/popup.tsxhandleOnScroll 函数中,使用了严格相等检查:

if (clientHeight + Math.floor(scrollTop) === scrollHeight)

当页面缩放时,浏览器的子像素渲染会导致 scrollTopclientHeightscrollHeight 产生浮点数值,严格相等比较会失败。

解决方案:
改用容差比较方式,允许1像素的误差:

if (Math.abs(clientHeight + scrollTop - scrollHeight) < 1)

这种方式可以处理页面缩放时产生的浮点数精度问题,确保 onScrollToBottom 事件在任何缩放级别下都能正常触发。

📝 更新日志

  • 本条 PR 不需要纳入 Changelog

tdesign-vue-next

  • fix(popup): 修复页面缩放后 onScrollToBottom 事件无法触发的问题

@tdesign-vue-next/chat

@tdesign-vue-next/auto-import-resolver

☑️ 请求合并前的自查清单

⚠️ 请自检并全部勾选全部选项⚠️

  • 文档已补充或无须补充
  • 代码演示已提供或无须提供
  • TypeScript 定义已补充或无须补充
  • Changelog 已提供或无须提供
Original prompt

This section details on the original issue you should resolve

<issue_title>select#通过滚动事件加载选项的选择器窗口页面缩放后,不能正常触发事件加载更多</issue_title>
<issue_description>### tdesign-vue-next 版本

1.17.2

重现链接

https://tdesign.tencent.com/vue-next/components/select#%E9%80%9A%E8%BF%87%E6%BB%9A%E5%8A%A8%E4%BA%8B%E4%BB%B6%E5%8A%A0%E8%BD%BD%E9%80%89%E9%A1%B9%E7%9A%84%E9%80%89%E6%8B%A9%E5%99%A8

重现步骤

  1. 官网选择select#通过滚动事件加载选项的选择器
  2. 以100%正常窗口大小下拉滑动触底可以正常加载更多
  3. 页面放大至110%,下拉触底后无法加载更多,没有正常触发onScrollToBottom
  4. 页面缩小也有概率复现

期望结果

无论页面放大缩小都能正常触发onScrollToBottom

实际结果

页面放大后下滑到底部onScrollToBottom没有触发

框架版本

vue3

浏览器版本

chorme版本 142.0.7444.60(正式版本) (64 位)

系统版本

win

Node版本

node 16

补充说明

No response</issue_description>

Comments on the Issue (you are @copilot in this section)


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

@liweijie0812
Copy link
Collaborator

@copilot 继续

Copy link
Contributor Author

Copilot AI commented Nov 28, 2025

@copilot 继续

Fixed in commit 2f35ce3. Changed the scroll-to-bottom detection from strict equality to tolerance-based comparison (Math.abs(clientHeight + scrollTop - scrollHeight) < 1) to handle sub-pixel values when the page is zoomed.

Copilot AI changed the title [WIP] Fix select component loading event with zoomed page fix(popup): onScrollToBottom event not triggering when page is zoomed Nov 28, 2025
@pkg-pr-new
Copy link

pkg-pr-new bot commented Nov 29, 2025

tdesign-vue-next-demo

npm i https://pkg.pr.new/Tencent/tdesign-vue-next/@tdesign-vue-next/auto-import-resolver@6205
npm i https://pkg.pr.new/Tencent/tdesign-vue-next@6205
npm i https://pkg.pr.new/Tencent/tdesign-vue-next/@tdesign-vue-next/chat@6205

commit: 2f35ce3

@tdesign-bot
Copy link
Collaborator

TDesign Component Site Preview Open

Component Preview
tdesign-vue-next 完成
@tdesign-vue-next/chat 完成

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.

select#通过滚动事件加载选项的选择器窗口页面缩放后,不能正常触发事件加载更多

3 participants