Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Force javascript to run *before* browser redraw (jsFiddle example)

I am building a little web based application using an HTML table. One unusual property of this table is that it has fixed top row and left column (similar to excel). I accomplished this using a little jQuery and CSS.

The problem is, the jQuery event that triggers my code is the $(window).scroll event, and evidently most browsers (Chrome and IE) redraw the page before the code that is called by this event is finished running. As a result, the left column and top row take a split second to "catch up" to the rest of the table.

I've provided a stripped down jsFiddle example in order to show you my problem. Note: The lag isn't very noticeable when the table is so small and (relatively speaking) empty of content. Nevertheless, it is there (assuming you aren't using firefox). Is there any way to get rid of this lag?

Thanks!

like image 548
ihake Avatar asked Jul 05 '12 14:07

ihake


1 Answers

Just an idea, but maybe worth considering: You could try using requestAnimationFrame as described in this article (or in a similar way). That might smooth out the update/"lag" issues.

like image 196
Daniel Baulig Avatar answered Sep 29 '22 20:09

Daniel Baulig