强制JavaScript在浏览器重绘之前运行*(jsFiddle示例)

我正在使用HTML表构建一个基于Web的小应用程序。 该表的一个不寻常的属性是它有固定的顶行和左列(类似于excel)。 我用一个小小的jQuery和CSS完成了这个任务。

问题是,触发我的代码的jQuery事件是$(window).scroll事件,显然大多数浏览器(Chrome和IE)在该事件调用的代码完成运行之前重新绘制页面。 结果,左栏和上栏以秒为单位“赶上”表格的其余部分。

我已经提供了一个精简的jsFiddle示例,以向您展示我的问题。 注意:当表格非常小​​并且(相对来说)没有内容时,滞后并不是很明显。 不过,它在那里(假设你没有使用Firefox)。 有什么办法摆脱这种滞后?

谢谢!


只是一个想法,但也许值得考虑:您可以尝试使用本文中描述的requestAnimationFrame (或以类似的方式)。 这可能会消除更新/“滞后”问题。


我没有得到这与scroll事件或requestAnimationFrame工作。 我最终做的是附加到mousewheel事件,该事件在滚动和渲染发生之前触发。 如果滚动事件正在向下,我可以及时应用适当的类来渲染。

链接地址: http://www.djcxy.com/p/61255.html

上一篇: Force javascript to run *before* browser redraw (jsFiddle example)

下一篇: finding median of 5 elements