非默认行高的可处理滚动问题

Handsontable scroll issue with non default row height

本文关键字:可处理 滚动 问题 默认      更新时间:2023-09-26

我有一个问题:当行高度是非标准的时候,handsontable滚动正在跳跃。

我的代码是:
$(document).ready(function () {
  function createBigData() {
    var rows = []
      , i
      , j;
    for (i = 0; i < 10; i++) {
      var row = [];
      for (j = 0; j < 7; j++) {
        row.push(Handsontable.helper.spreadsheetColumnLabel(j) + i + "'n2nd_row");
      }
      rows.push(row);
    }
    return rows;
  }
  $('#example1').handsontable({
    data: createBigData(),
  });
});

jsfiddle: http://jsfiddle.net/LR4Ne/

尝试滚动到表格的底部。你看到它来回跳了吗?

我注意到旧版本的handsontable js没有这样工作,试着改变

<script src="http://handsontable.com/dist/jquery.handsontable.full.js"></script>

<script src="http://old.handsontable.com/dist/jquery.handsontable.full.js"></script>

现在可以正常工作了

请建议。提前感谢!

——德米特里•

我完全确定新的handsontable版本的问题是什么,但是由于'n换行符进入每个单元格而发生问题。Handsontable有一个将标记输入单元格的方法,我在本文中使用了这个方法,但是问题仍然存在。如果您删除'n并添加更多行,则可以正常工作。(旁注:我在这里使用<br>,因为我认为赛门铁克,这更有意义,但它并不重要你使用。)你会注意到,在这个例子中,你可以滚动,但一旦你到达底部,它又开始跳动。这让我想到:

要解决这个问题你可以定义插件使用的.wtHider类的最小高度。下面是一个演示如何解决这个问题的工作小提琴。

这里的主要问题是,当您滚动时,handsontable实际上是用新的可见行重新呈现表。重新渲染后,handsontable动态设置.wtHider.wtHolder的高度,这就是导致问题的原因。

这是一个"粗糙"的解决方案,但它应该可以满足您的需求。希望对你有帮助。

对于每个请求,这里有另一个方法来修复表底部的空间问题:http://jsfiddle.net/8awo0gzk/1/