Closed liupan1890 closed 2 years ago
确实没遇到这个问题,系统和鼠标都是什么?
是 windows?
是window10, edge 版本 102.0.1245.30 (正式版本) (64 位) 同一个浏览器,我测试antdvue的tree虚拟化时(官方示例),可以正常的一直往下滚动,就是naive会出现滚动后卡住不动
这个不是性能问题,也不是功能问题,感觉上就是事件触发的问题
--
同一个电脑+EDGE antdv是正常的 https://www.antdv.com/components/tree
测试win7+Chrome 复现BUG Chrome 已是最新版本 版本 102.0.5005.63(正式版本) (64 位)
--
同一台电脑 win7+360急速浏览器13.0 内核86.0.4240.198 正常滚动没有BUG
测试win7+Chrome 复现BUG Chrome 已是最新版本 版本 102.0.5005.63(正式版本) (64 位)
--
同一台电脑 win7+360急速浏览器13.0 内核86.0.4240.198 正常滚动没有BUG
我先看看是不是 chrome 102 的问题
我试了试 chrome 102 在我的电脑上确实没啥问题,是个 mac,这下有点难搞了
用的什么鼠标能讲一下吗?
chrome 102 的问题, windows版本虚拟滚动的都有问题了,看起其他使用虚拟滚动的包,类似handsontable, ag-grid, 阿里的@surely-vue/table,都出现同样的问题,mac下没问题, 列表滚动到刚好要替换数据时, document.addEventListener('scroll'),相关的其他监听滚动的事件就不会触发了,鼠标滚动停下来再继续滚,滚动监听事件又会正常触发了,老版本chrome的监听是没问题的
Ant Design Vue里面是把外层的overflow-y设置为hidden禁用滚动之后,监听的该元素的鼠标滚轮事件再进行模拟滚动,所以Ant Design Vue里面是正常的,这算是一个解决方案哦
Ant Design Vue里面是把外层的overflow-y设置为hidden禁用滚动之后,监听的该元素的鼠标滚轮事件再进行模拟滚动,所以Ant Design Vue里面是正常的,这算是一个解决方案哦
鼠标滚轮这个是能说是个之前不太想采用的方案,因为和移动端分叉,会想办法暂时处理一下
TuSimple/naive-ui version (版本)
2.29.1
Vue version (Vue 版本)
3.2.36
Browser and its version (浏览器及其版本)
edge
System and its version (系统及其版本)
傻
Node version (Node 版本)
Reappearance link (重现链接)
https://www.naiveui.com/zh-CN/os-theme/components/tree
Reappearance steps (重现步骤)
1.移动鼠标到tree上 2.滚动鼠标滚轮,0.5秒滚一下,一直滚 3.看到tree滚动了一次,然后停止不动,不再滚动 4.移动鼠标(滚动鼠标滚轮没有停,一直滚),看到tree再次滚动,然后停住
Expected results (期望的结果)
滚动鼠标滚轮,0.5秒滚一下,一直滚 预期tree一直向下滚动
Actual results (实际的结果)
滚动鼠标滚轮,0.5秒滚一下,一直滚 触发滚动一次后停止不动
Remarks (补充说明)
1.移动鼠标到tree上 2.滚动鼠标滚轮,0.5秒滚一下,一直滚 3.看到tree滚动了一次,然后停止不动,不再滚动
方案一:停止滚动,等待约1-2秒后,再次滚动鼠标滚轮,tree也会滚动一次 方案二:一直滚动时,移动鼠标位置,tree也会滚动一次
总之,tree的滚动事件似乎只触发一次,然后就不触发了。而不是正确的响应多次滚动事件
1.可能是因为item滚动到视界之外,无法接收到滚动事件了? 2.可能是tree自己搞了滚动事件防抖了?