use calculated offset for margin; add complex data;

Still an issue when scrolled to the bottom, but it's not the margin-top
that is the problem.  Margin-top or top calcs are exactly the same, but
margin-top only has to be calculated for the first rendered row