【问题标题】:slickgrid resize causes scrollbar gap near bottomslickgrid resize 导致滚动条在底部附近出现间隙
【发布时间】:2012-10-22 03:03:18
【问题描述】:

我有以下问题: 我将 Slickgrid 与 jquery 布局结合使用。可以使用此插件调整窗格的大小。当我调整 Slickgrid 窗格的大小时,会出现一个水平滚动条,起初不存在,我无法一直滚动到底部。

我创建了一个 jsfiddle 来演示: http://jsfiddle.net/uNMRT/2/

重现步骤:

  1. 确保 slickgrid 窗格没有水平滚动条。
  2. 一直滚动。 (效果很好,您可以查看记录 119,最后一条)
  3. 使用垂直分割器调整 slickgrid 窗格的大小。确保缩小 slickgrid 区域以显示水平滚动条。
  4. 再次向下滚动。请注意,您无法完全向下滚动。现在看不到记录 119。

我已经在调整大小时做了一个 resizeCanvas:

center__onresize: function(pane, $pane, state, options) {
                myGrid.resizeCanvas();
            }

显然这还不够。有什么想法吗?

【问题讨论】:

  • 嗨,你有没有找到解决这个问题的有效方法?如果是这样,您能否发布它或接受一个代表解决方案的答案。这将非常有帮助。谢谢!

标签: slickgrid jquery-layout


【解决方案1】:

我面临同样的问题,但垂直滚动。如果容器被调整大小,垂直滚动条不会完全滚动。它在倒数第二个记录处停止。尽管栏有滚动空间,但它不能完全移动到底部。如果我将其拉下,网格会跳跃,并且条形会再次移动到原始位置。永远无法查看最后一条记录。

【讨论】:

  • 是的,这正是我的行为。在 Firefox 中,网格只是停止向下滚动,在 IE 和 Chrome 中,当在底部附近向下滚动时,网格会上下跳跃
【解决方案2】:

我在添加一行时也遇到了问题。这是因为您可能没有正确更新网格。你必须调用 grid.updateRowCount();

【讨论】:

    【解决方案3】:

    我遇到了同样的问题,看起来光滑的网格没有正确设置“viewportHasHScroll”标志。我找到了以下两种解决方法来解决这个问题(SlickGrid v2.1)

    1) 更新 updateCanvasWidth 函数(第 396 行) 并更改以下行

    viewportHasHScroll = (canvasWidth > viewportW - scrollbarDimensions.width); 
    

    to(注意“大于或等于”符号

    viewportHasHScroll = (canvasWidth >= viewportW - scrollbarDimensions.width);
    

    2) 更新 handleScroll 函数(第 1920 行) 并更新 if 块

      //only scroll if they've moved at least one row
      if(vScrollDist && (vScrollDist > options.rowHeight)) {
          ....
      }
    

    【讨论】:

    • 您能否在此处报告此问题:github.com/mleibman/SlickGrid/issues 以便其他用户以适当的方式获得此修复?甚至更好:你能创建分支、修复然后创建拉取请求吗?
    猜你喜欢
    • 2013-03-26
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 2012-03-13
    • 2014-01-12
    • 2014-12-12
    相关资源
    最近更新 更多