找回密码
 立即注册

QQ登录

只需一步,快速开始

码出一个新世界

初级会员

54

主题

144

帖子

398

积分

初级会员

积分
398

微信认证勋章

码出一个新世界
初级会员   /  发表于:2016-10-19 17:26  /   查看:3706  /  回复:8
本帖最后由 码出一个新世界 于 2016-10-20 09:28 编辑

       我想在表单中的canvas中画一个辅助线,但是一拖动滚动条,canvas就重新绘制了,我看了一下SpreadJS绘制表格的结构,分了俩td,一个放canvas绘制表单主体,另一个是滚动条,目前能简单的得到滚动条距离顶部的高度,想问一下,这个滚动比例是怎么算的

       比如说我要在高度1700的地方画一条横线,画了之后屏幕显示不下,一拖动滚动条canvas就重新绘制了,我的横线就没了,我想拖到下方能看到的地方再画一次就得获取到滚动的距离。这个距离和滚动条移动的距离应该有个比例,请问下这个比例是否是个定值,或者我有什么办法可以获取到绘制的表单的整体高度,谢谢。

8 个回复

倒序浏览
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-10-19 17:44:05
沙发
可以问下您花线的目的是什么,为什么不能使用设置边框代替?
回复 使用道具 举报
码出一个新世界
初级会员   /  发表于:2016-10-20 09:04:10
板凳
dexteryao 发表于 2016-10-19 17:44
可以问下您花线的目的是什么,为什么不能使用设置边框代替?

我想画个打印的辅助线,分割一下表单,让用户明确看出来到哪打印的时候就自动换页了
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-10-20 09:29:15
地板
自己画的话可以根据每行的行高和列头高计算,但是这个还牵扯了缩放,算起来也比较麻烦。
赶紧还是花边框好算些,打印时候删掉。
回复 使用道具 举报
码出一个新世界
初级会员   /  发表于:2016-10-20 09:36:55
5#
dexteryao 发表于 2016-10-20 09:29
自己画的话可以根据每行的行高和列头高计算,但是这个还牵扯了缩放,算起来也比较麻烦。
赶紧还是花边框好 ...

现在的问题是,画我能画出来,但是一拖动滚动条,表单就重绘了,把我的辅助线刷掉了,所以我想问下滚动条滚动距离和表单滚动高度的比例,这个开发应该有个算法吧,打印就是750 *1200的区域,如果我能拿到表单滚动的高度,哪怕滚动之后表单重绘,辅助线不见了,我可以再画一次
回复 使用道具 举报
码出一个新世界
初级会员   /  发表于:2016-10-20 09:36:57
6#
dexteryao 发表于 2016-10-20 09:29
自己画的话可以根据每行的行高和列头高计算,但是这个还牵扯了缩放,算起来也比较麻烦。
赶紧还是花边框好 ...

现在的问题是,画我能画出来,但是一拖动滚动条,表单就重绘了,把我的辅助线刷掉了,所以我想问下滚动条滚动距离和表单滚动高度的比例,这个开发应该有个算法吧,打印就是750 *1200的区域,如果我能拿到表单滚动的高度,哪怕滚动之后表单重绘,辅助线不见了,我可以再画一次
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-10-20 10:28:12
7#
滚动条滚动距离和表单滚动高度的比例 是和 总行高有关系的,那个比例是变化的。

您可以通过toprow Index 计算被隐藏行的总行高
回复 使用道具 举报
码出一个新世界
初级会员   /  发表于:2016-10-20 10:47:16
8#
dexteryao 发表于 2016-10-20 10:28
滚动条滚动距离和表单滚动高度的比例 是和 总行高有关系的,那个比例是变化的。

您可以通过toprow Index ...

可以拿到隐藏的总行高也行,toprow Index这个方法可以给个小例子么,谢谢。
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-10-20 11:22:34
9#
var topROwIndex = sheet.getViewportTopRow(1);
var height = 0
for(var i = 0; i< topROwIndex;i++){
height+= sheet.getRowHeight(i)
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部