IE中缺少虚拟滚动错误显示行

时间:2015-12-23 23:38:40

标签: javascript

我有这个虚拟滚动脚本,出于某种原因,在大约68500行之后它在Internet Explorer 11中断了,但在FF和Chrome中运行...

https://jsfiddle.net/dLq2284r/5/

最后你可以看到行重叠..但是只有超过65k行之后 我觉得这里出了点问题:

 positionPage: function(inPage)
超过1535274,它变得越来越大了 所以我认为设置一个css顶部:1535274px;或者更多是问题,但我可能错了:D

positionPage: function(inPage) {
var pn = inPage.pageNum;
if (this.fixedHeight) {
  t = pn * this.rowHeight * this.pageSize;
} else {
  if (this.pageTops[pn]) {
    t = this.pageTops[pn];
  } else {
    var n = 0, t = 0; 
    while (n < pn) {
      t += this.getPageHeight(n);
      n++;
    }
  }
}
var t0 = inPage.style[this.horiz ? 'left' : 'top'].slice(0, -2);
// update pageTops cache
this.pageTops[pn] = t;
this.pageTops[pn+1] = t + this.getPageHeight(pn);
// set the page's top
inPage.style[this.horiz ? 'left' : 'top'] = t + 'px';
if (t0) {
  return t0 - t;
}
}

我已经尝试了一切......任何帮助,提示或任何事情都将受到赞赏。

我将它用于行数超过90k的数据库,我希望它能在IE上工作至少10万行。

也没有建议框架或其他任何东西,我已经尝试过所有

由于

1 个答案:

答案 0 :(得分:0)

IE还有很长的路要走才能与其他浏览器竞争..所以要回答我自己的问题,基于@Sam Segers评论和我的研究似乎在特定高度后IE有高度误算,基于< / p>

Determine Maximum Possible DIV Height

IE可以处理大约1000万像素,但是大约1.5M之后它不准确,例如我的元素有一个样式顶部:1535274px;并且浏览器正在以1534484px添加内容,因此高出790px,我的js在此之后停止工作。从那以后一切都很好,我得出结论,我的脚本正在做它的工作。

我刚刚在我的脚本中添加了一个警告,让IE用户知道在高度结果不准确并使用其他浏览器之后。

感谢您的帮助