找回密码
 立即注册

QQ登录

只需一步,快速开始

KYddd

注册会员

6

主题

27

帖子

67

积分

注册会员

积分
67
KYddd
注册会员   /  发表于:2022-12-8 14:03  /   查看:1862  /  回复:8
10金币
本帖最后由 KYddd 于 2022-12-8 14:04 编辑

我现在想在点击的单元格附近插入形状,目前是获取的选中单元格的x,y:
image.png798664550.png
但是表格滚动后,获取的x,y是相对位置,把这两个坐标放进shapes.add()方法里面,却是在绝对位置插入了形状,位置错了。
请问这要怎么解决?可以获取滚动距离后加上单元格的x,y吗?或者用什么其他的方式解决?

最佳答案

查看完整内容

getCellRect 表示获取视图内选中单元格相对于当前视图的xy坐标和宽高信息, 根据您描述的需求,应根据 选中单元的行列索引 来计算此前的行高/列宽之和来获取 xy的值。

8 个回复

倒序浏览
最佳答案
最佳答案
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-12-8 14:03:29
来自 5#
getCellRect 表示获取视图内选中单元格相对于当前视图的xy坐标和宽高信息,
根据您描述的需求,应根据 选中单元的行列索引 来计算此前的行高/列宽之和来获取 xy的值。
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-12-8 18:41:24
2#
“表格滚动后...形状的位置错了”,这个如何理解呢?您是监听了什么事件动态添加的shape吗?
请提供下完整的代码或一个可复现问题的demo,并结合业务情况详细描述下您的问题以及需求,这边需要综合这些信息来理解此问题。
回复 使用道具 举报
KYddd
注册会员   /  发表于:2022-12-8 18:55:02
3#
Lynn.Dou 发表于 2022-12-8 18:41
“表格滚动后...形状的位置错了”,这个如何理解呢?您是监听了什么事件动态添加的shape吗?
请提供下完整 ...

我上面的代码实现了在选中的单元格附近插入形状,但是滚动表格后,点击单元格,获取的单元格的x,y坐标传给shapes.add,形状生成的位置不对
回复 使用道具 举报
KYddd
注册会员   /  发表于:2022-12-9 09:20:30
4#
本帖最后由 KYddd 于 2022-12-9 09:22 编辑
Lynn.Dou 发表于 2022-12-8 18:41
“表格滚动后...形状的位置错了”,这个如何理解呢?您是监听了什么事件动态添加的shape吗?
请提供下完整 ...

比如,我第一次点击了第二行第一列的单元格,获取它的x,y image.png456932067.png ,然后把这个x,y传入shapes.add()生成形状, image.png986374206.png


但是现在我滚动表格,点击第50行第1列的单元格,获取它的x,y, image.png603673705.png , image.png690111388.png ,把这个坐标传给shapes.add()生成形状, image.png880540161.png ,这个y坐标好像没有算上滚动的距离,所以导致生成的形状还在上面,按照逻辑我获取的第五十行单元格的x,y坐标,应该要在第五十行生成形状才对,请问怎么解决呢?
回复 使用道具 举报
KYddd
注册会员   /  发表于:2022-12-9 10:45:52
6#
Lynn.Dou 发表于 2022-12-9 10:33
getCellRect 表示获取视图内选中单元格相对于当前视图的xy坐标和宽高信息,
根据您描述的需求,应根据 选 ...

但是我每行的行高不一定一样,有没有其他方式
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-12-9 11:11:26
7#
遍历获取每行行高再相加即可,目前没有更好的建议了。
回复 使用道具 举报
KYddd
注册会员   /  发表于:2022-12-9 11:40:57
8#
本帖最后由 KYddd 于 2022-12-9 13:30 编辑
Lynn.Dou 发表于 2022-12-9 11:11
遍历获取每行行高再相加即可,目前没有更好的建议了。

好的,解决了。
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-12-9 13:42:41
9#
那本帖就先结贴了,有问题欢迎另开新帖交流。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部