我正在使用handsontable的注释和滚动功能,但是滚动时会导致注释的位置错误。

这是代码的jsfiddle

请滚动,然后将鼠标悬停以发表评论,这表明评论div超出了其位置。

对象属性:

    data: getData(),
    rowHeaders: true,
    colHeaders: true,
    minSpareRows: 1,
    contextMenu: true,
    comments: true,


我希望它应该与不滚动时一样。

最佳答案

问题是
placeCommentBox。偏移位置错误

基于此post,我修改了handsontable.full.js .placeCommentBox函数应如下所示:

 placeCommentBox = function (range, commentBox) {
  var TD = instance.view.wt.wtTable.getCell(range.from),
   // wrong offset offset = Handsontable.Dom.offset(TD),
    lastColWidth = instance.getColWidth(range.from.col);
    var rect = TD.getBoundingClientRect();
    var docEl = document.documentElement;
    var rectTop = rect.top + window.pageYOffset - docEl.clientTop;
  commentBox.style.position = 'absolute';
  commentBox.style.left = offset.left + lastColWidth + 'px';
  commentBox.style.top = rectTop + 'px';
  commentBox.style.zIndex = 2;
  bindMouseEvent(range, commentBox);
},


您可以修改文件或等待修复该错误。

08-28 14:47