水平固定列在IE上滞后

时间:2016-08-08 20:03:43

标签: javascript jquery html css internet-explorer

我试图从垂直列表构建比较表。 主要目标是第一列必须仅在水平方向固定,并且水平滚动条必须始终在屏幕上可见。我想轻松比较第一列的行与其他列的相应行

喜欢这里jsfiddle example

我设法通过在第1列使用position绝对并在scroll事件上更改其css left属性来实现此目的。

$('#container').scroll(function() {
        $('#main').css('left', $(this).scrollLeft());
    });

除IE之外,该解决方案工作正常。在IE上我的固定列是滞后的,改变位置是不平滑的。我正在努力解决这个问题,但我已经没有解决方案了。

1 个答案:

答案 0 :(得分:0)

问题的一部分可能源于以下事实:将任何内容附加到滚动事件可能非常繁重,只需将console.log()附加到它就足以理解调用量。
你应该尝试this thread中提出的解决方案,这肯定会使除了IE之外的其他浏览器更轻。 我知道你正在寻找平滑,你可以动画左边的属性,而不是立即改变它,或者找到一种方法只在IE上进行平滑过渡,保持在其他浏览器中。 你可以尝试的另一件事就是改变,但遗憾的是它不受IE的支持。您可以尝试将transform:translate3D(0,0,0)转换为#main以欺骗浏览器使用硬件加速,这可能会提高IE11的性能。

- 编辑 想到的另一件事:
我可以看到你需要将div 绝对定位而不是修复,因为你需要向下滚动,同时保持与其他表对齐。难道你不能使用JS给它定位:水平滚动时固定,当用户垂直滚动或停止水平滚动时返回绝对