找回密码
 立即注册

QQ登录

只需一步,快速开始

Fiooona
论坛元老   /  发表于:2020-8-31 19:02  /   查看:3736  /  回复:0
本帖最后由 Fiooona 于 2020-8-31 19:04 编辑

背景:在用SpreadJS进行开发时,有些小伙伴需要判断滚动条是否快滚动到底部或最右侧,在进行一些相应的提示。
思路:SpreadJS 中提供两个事件:LeftColumnChangedTopRowChanged
          在最左侧列,或最顶行改变时会触发这两个事件,所以可以根据触发这个事件时返回的oldTopRow、newTopRow 等参数进行判断,是否滚动到了最后行、列。
           情况一:滚动条设置: spread.options.scrollbarMaxAlign = false 此设置为默认设置
      在这种情况中,表单最后一行可以滚动到最顶端,判断返回的newTopRow是否为 总行数,即可判断是否滚动到了最后一行。

参考代码:
           
  1. sheet.bind(GC.Spread.Sheets.Events.TopRowChanged, function(<span style="background-color: transparent; color: rgb(34, 34, 34); font-family: Consolas, Menlo, Monaco, &quot;Lucida Console&quot;, &quot;Courier New&quot;, monospace, sans-serif; font-size: 12px; letter-spacing: -0.357px;">sender, args</span>) {
复制代码
          情况二:滚动条设置: spread.options.scrollbarMaxAlign = true 此设置下,表格无法将最后一行滚动至最顶部,故无法用args.newTopRow=== rowCount - 1进行判断。      这种情况下可以用getViewportTopRow方法获取视图顶部行索引,进行判断
参考代码:

  1. sheet.bind(GC.Spread.Sheets.Events.TopRowChanged, function() {
  2.     var row = sheet.<span style="color: rgb(51, 51, 51); font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; background-color: rgb(255, 255, 255);">getViewportTopRow</span>(1);
  3.     console.log(row)
  4.     var rowCount = sheet.getRowCount()
  5.     if (row === rowCount - 1) {
  6.         console.log('滚动到底部了');
  7.     }
  8. });
复制代码

组件化表格编辑器(预览版)试用进行中,点击了解详情!
请点击评分,对我的服务做出评价!5分为非常满意!

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部