Using either pure Javascript or jQuery, how do I scroll the page so that the nth row in a table is centered on the page?
Some examples I've seen that have this sort of feature usually require that the element I scroll to uses an id as the selector, but since the table has a dynamic amount of rows and may be paged, I'd rather not go this route of having to give each <td>
tag an id.
Is the easiest way to just calculate the position of the td relative to the top of the document and scroll the window using setInterval until the middle of the window is >= to the position of the nth <td>
tag?
I suppose some pseudo-code of the way I imagine it working would be:
function scrollToNthTD(i) {
var position = CalculatePositionOfTR(i);
var timer = setTimeout(function () {
ScrollDownALittle();
if( CenterOfVerticalWindowPosition > position)
clearInterval(timer);
}, 100);
}
Give this a shot:
Since you can use jQuery here it is..
Demo at http://jsfiddle.net/SZKJh/
If you want it to animate instead of just going there use
Demo at http://jsfiddle.net/SZKJh/1/
You can do something like this
aka-g-petrioli
I have corrected the followings from your answer.
This will help you to scroll accurate position.
Don't use jQuery - it slows down sites!