Javascript:テーブルのn番目の行までスクロールしますか?



1 Answers

jQueryを使わないでください - サイトが遅くなります!

var elem = document.getElementById("elem_id");  
elem.scrollIntoView(true); 
Question

純粋なJavascriptまたはjQueryを使用すると、テーブルのn番目の行がページの中央にくるようにページをスクロールするにはどうすればよいですか?

この種の機能を持ついくつかの例では、通常、スクロールする要素にセレクタとしてIDを使用する必要がありますが、テーブルには動的な量の行がありページングされる可能性があるので、各<td>タグにidを与える必要があります。

ウィンドウの中央が> =でn番目の<td>タグの位置まで、setIntervalを使用してドキュメントの上端に対するtdの位置を計算し、ウィンドウをスクロールする最も簡単な方法はありますか?

私はそれが動作すると想像する方法のいくつかの疑似コードを仮定します:

function scrollToNthTD(i) {
  var position = CalculatePositionOfTR(i);
  var timer = setTimeout(function () {
    ScrollDownALittle();
    if( CenterOfVerticalWindowPosition > position)
      clearInterval(timer);
  }, 100);
}



これを撃つ:

/*pseudo-code*/
$("td.class").bind("click", function() {

    var y = $(this).position().top,
        h = $(window).height();

    if(y > h/2) {
        $("body").animate({
            scrollTop: y - h/2
        }, 2000);
    };
});



Related