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

QQ登录

只需一步,快速开始

空静

注册会员

4

主题

16

帖子

52

积分

注册会员

积分
52
空静
注册会员   /  发表于:2025-3-27 16:11  /   查看:101  /  回复:3
2金币
image.png157104186.png 类似这种效果,单元格高亮,我看到drag方案是获取坐标设置单元格得背景,感觉有点低效,想问下官方是怎么实现这种效果得(感觉很快),请教一下

最佳答案

查看完整内容

您好,目前无法得知spreadjs内部是如何实现的,但是您可以使用html+css的方式,将元素定位在单元格上。 具体的定位的信息需要用getCellRect方法获取单元格左上角距离canvas左上角的距离,再加上canvas距离浏览器左上角的距离来计算。 这边给您提供一个demo,这个demo有点复杂,其中包含了您要的这个功能,您不必关系无关的逻辑,只要看如何监听鼠标的拖动事件和如何设定蓝色小方框的位置就好了,您可以参考一下: 字段列表支持 ...

3 个回复

倒序浏览
最佳答案
最佳答案
Matthew.Xue
超级版主   /  发表于:2025-3-27 16:11:50
来自 2#
您好,目前无法得知spreadjs内部是如何实现的,但是您可以使用html+css的方式,将元素定位在单元格上。
具体的定位的信息需要用getCellRect方法获取单元格左上角距离canvas左上角的距离,再加上canvas距离浏览器左上角的距离来计算。
这边给您提供一个demo,这个demo有点复杂,其中包含了您要的这个功能,您不必关系无关的逻辑,只要看如何监听鼠标的拖动事件和如何设定蓝色小方框的位置就好了,您可以参考一下:
字段列表支持绑定值与显示值不同

image.png511133117.png

其中highligtCell方法是设置方框位置的核心逻辑,decoration变量是边框的div元素,通过搜索这个变量,您可以知道如何监听鼠标在canvas的拖动事件。

评分

参与人数 1满意度 +5 收起 理由
空静 + 5

查看全部评分

回复 使用道具 举报
空静
注册会员   /  发表于:2025-3-31 09:45:27
3#
Matthew.Xue 发表于 2025-3-27 17:12
您好,目前无法得知spreadjs内部是如何实现的,但是您可以使用html+css的方式,将元素定位在单元格上。
具 ...

谢谢老师,这个例子有实现这个效果
回复 使用道具 举报
Matthew.Xue
超级版主   /  发表于:2025-3-31 09:49:44
4#
空静 发表于 2025-3-31 09:45
谢谢老师,这个例子有实现这个效果

好的,您可以依据demo来实现您想要的效果。那这边就先结贴了,有问题请发新帖
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部