找回密码
 立即注册

QQ登录

只需一步,快速开始

nutstore
金牌服务用户   /  发表于:2023-12-20 11:51  /   查看:2448  /  回复:8
本帖最后由 Lynn.Dou 于 2023-12-25 11:24 编辑


产品:GcExcel
版本:16.2.6
getCellRect 只能获取该单元格相对于整个workbook的座标信息,有办法能拿到相对于整个屏幕视口viewport的座标信息吗?

8 个回复

倒序浏览
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-12-20 12:20:18
沙发
您好,
js原生提供了获取相对于viewport的坐标信息的接口,比如getBoundingClientRect方法。
您可以结合getCellRect方法间接计算获取SpreadJS单元格相对于viewport的坐标信息。
回复 使用道具 举报
nutstore
金牌服务用户   /  发表于:2023-12-20 14:27:23
板凳
Lynn.Dou 发表于 2023-12-20 12:20
您好,
js原生提供了获取相对于viewport的坐标信息的接口,比如getBoundingClientRect方法。
您可以结合g ...

有具体的计算案例demo可以参考吗
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-12-20 17:35:47
地板
深入调研了下,其实直接用js原生提供的方法就可以获取hit点击时相较于屏幕视图的xy坐标了,如下代码示例:
  1. spread.getHost().addEventListener('click', function (e) {
  2.                 var x = e.clientX + window.pageXOffset; // 鼠标相对于可视区域的X轴位置加上水平滚动的偏移量
  3.                 var y = e.clientY + window.pageYOffset; // 鼠标相对于可视区域的Y轴位置加上垂直滚动的偏移量
  4.                 console.log(x, y);
  5.             });
复制代码

可以参考此思路调研下您的需求。
如果我的理解有误,您可以再结合实际业务情况详细描述下,以便问题的进一步调研。
回复 使用道具 举报
nutstore
金牌服务用户   /  发表于:2023-12-21 18:00:01
5#
Lynn.Dou 发表于 2023-12-20 17:35
深入调研了下,其实直接用js原生提供的方法就可以获取hit点击时相较于屏幕视图的xy坐标了,如下代码示例:
...

我需要获取的是我点击的单元格的屏幕座标(具体应该是当前单元格左上角那个座标吧)。现在这样只是获取到了我鼠标点击位置的座标
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-12-22 08:58:26
6#
本帖最后由 Lynn.Dou 于 2023-12-22 09:02 编辑

您参考这段代码:
  1. sheet.bind(GC.Spread.Sheets.Events.CellClick, function (sender, args) {
  2.                 var rect = spread.getHost().getBoundingClientRect();
  3.                 var row = args.row;
  4.                 var col = args.col;
  5.                 var cellRect = sheet.getCellRect(row, col);
  6.                 var x = rect.x + cellRect.x;
  7.                 var y = rect.y + cellRect.y;
  8.                 console.log(x, y)
  9.             });
复制代码
注:代码仅供参考,关于js相关知识具体您可以网上搜索下相关资料。
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-12-25 11:23:47
7#
请问楼主问题解决了吗?如果还有疑问,可以跟帖交流。
回复 使用道具 举报
nutstore
金牌服务用户   /  发表于:2023-12-25 17:20:34
8#
Lynn.Dou 发表于 2023-12-25 11:23
请问楼主问题解决了吗?如果还有疑问,可以跟帖交流。

在做别的内容,还没写这里的逻辑
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-12-25 17:37:55
9#
好的,那有疑问您再跟帖咨询。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部