请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

miSpreadjs

初级会员

25

主题

57

帖子

220

积分

初级会员

积分
220
miSpreadjs
初级会员   /  发表于:2025-3-24 14:47  /   查看:103  /  回复:3
1金币
LeftColumnChanged和TopRowChanged 事件触发的时机是不是跟原生的 scroll 事件 不一样, 好像要鼠标跨过单元格了才会触发吗

最佳答案

查看完整内容

您好,很抱歉我之前的回复有误。 经过我的测试,从V17版本开始,TopRowChanged和LeftColumnChanged事件就可以监听到像素滚动了,如下图所示,我开启了像素滚动,在我滚动了4次之后,第一行的行号已经不可见了,但是topRow仍然是第一行,并触发了4次TopRowChanged事件。事件中多了一个newOffset的属性,最后一次的值为12,由于第一行行高为20,所以此时第一行可被看到的部分的高度就是8,这一次滚动的像素数是newOffset-oldOffse ...

3 个回复

倒序浏览
最佳答案
最佳答案
Matthew.Xue
超级版主   /  发表于:2025-3-24 14:47:18
来自 4#
本帖最后由 Matthew.Xue 于 2025-3-25 09:22 编辑
miSpreadjs 发表于 2025-3-24 20:53
但是好像没有 scroll 事件吧 这个是最接近的

您好,很抱歉我之前的回复有误。
经过我的测试,从V17版本开始,TopRowChanged和LeftColumnChanged事件就可以监听到像素滚动了,如下图所示,我开启了像素滚动,在我滚动了4次之后,第一行的行号已经不可见了,但是topRow仍然是第一行,并触发了4次TopRowChanged事件。事件中多了一个newOffset的属性,最后一次的值为12,由于第一行行高为20,所以此时第一行可被看到的部分的高度就是8,这一次滚动的像素数是newOffset-oldOffset = 3
image.png944711303.png

您的这种需求,可以升级到V17或更新的版本后进行测试。
回复 使用道具 举报
Matthew.Xue
超级版主   /  发表于:2025-3-24 17:41:34
2#
您好,要回答这个问题,首先要了解LeftColumn以及TopRow的定义,TopRow指的是区域中可见的第一行,当这一行滚动至不可见时,TopRow才会发生变化。
所以它和scroll肯定是不一样的,scroll时有可能滚动了半行(开启像素滚动时),也有可能滚动了多行,当滚动不满一行时,由于TopRow没有变化,自然不会触发TopRowChanged事件。
回复 使用道具 举报
miSpreadjs
初级会员   /  发表于:2025-3-24 20:53:45
3#
Matthew.Xue 发表于 2025-3-24 17:41
您好,要回答这个问题,首先要了解LeftColumn以及TopRow的定义,TopRow指的是区域中可见的第一行,当这一行 ...

但是好像没有 scroll 事件吧 这个是最接近的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部