我正在使用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);
},
您可以修改文件或等待修复该错误。