本帖最后由 Fiooona 于 2020-8-31 19:04 编辑
背景:在用SpreadJS进行开发时,有些小伙伴需要判断滚动条是否快滚动到底部或最右侧,在进行一些相应的提示。
思路:SpreadJS 中提供两个事件:LeftColumnChanged、TopRowChanged
在最左侧列,或最顶行改变时会触发这两个事件,所以可以根据触发这个事件时返回的oldTopRow、newTopRow 等参数进行判断,是否滚动到了最后行、列。
情况一:滚动条设置: spread.options.scrollbarMaxAlign = false 此设置为默认设置
在这种情况中,表单最后一行可以滚动到最顶端,判断返回的newTopRow是否为 总行数,即可判断是否滚动到了最后一行。
参考代码:
- sheet.bind(GC.Spread.Sheets.Events.TopRowChanged, function(<span style="background-color: transparent; color: rgb(34, 34, 34); font-family: Consolas, Menlo, Monaco, "Lucida Console", "Courier New", monospace, sans-serif; font-size: 12px; letter-spacing: -0.357px;">sender, args</span>) {
复制代码 情况二:滚动条设置: spread.options.scrollbarMaxAlign = true 此设置下,表格无法将最后一行滚动至最顶部,故无法用args.newTopRow=== rowCount - 1进行判断。 这种情况下可以用getViewportTopRow方法获取视图顶部行索引,进行判断
参考代码:
- sheet.bind(GC.Spread.Sheets.Events.TopRowChanged, function() {
- var row = sheet.<span style="color: rgb(51, 51, 51); font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; background-color: rgb(255, 255, 255);">getViewportTopRow</span>(1);
- console.log(row)
- var rowCount = sheet.getRowCount()
- if (row === rowCount - 1) {
- console.log('滚动到底部了');
- }
- });
复制代码
|
|