How to scroll to specific item using jQuery?
I have a big table with vertical scroll bar. I would like to scroll to a specific line in this table using jQuery/Javascript.
Are there built-in methods to do this?
Here is a little example to play with.
div {
    width: 100px;
    height: 70px;
    border: 1px solid blue;
    overflow: auto;
}<div>
    <table id="my_table">
        <tr id='row_1'><td>1</td></tr>
        <tr id='row_2'><td>2</td></tr>
        <tr id='row_3'><td>3</td></tr>
        <tr id='row_4'><td>4</td></tr>
        <tr id='row_5'><td>5</td></tr>
        <tr id='row_6'><td>6</td></tr>
        <tr id='row_7'><td>7</td></tr>
        <tr id='row_8'><td>8</td></tr>
        <tr id='row_9'><td>9</td></tr>
    </table>
</div>Dead simple. No plugins needed .
var $container = $('div'),
    $scrollTo = $('#row_8');
$container.scrollTop(
    $scrollTo.offset().top - $container.offset().top + $container.scrollTop()
);
// Or you can animate the scrolling:
$container.animate({
    scrollTop: $scrollTo.offset().top - $container.offset().top + $container.scrollTop()
});
Here is a working example.
 Documentation for scrollTop .  
I realise this doesn't answer scrolling in a container but people are finding it useful so:
$('html,body').animate({scrollTop: some_element.offset().top});
 We select both html and body because the document scroller could be on either and it is hard to determine which.  For modern browsers you can get away with $(document.body) .  
Or, to go to the top of the page:
$('html,body').animate({scrollTop: 0});
Or without animation:
$(window).scrollTop(some_element.offset().top);
OR...
window.scrollTo(0, some_element.offset().top); // native equivalent (x, y)
我同意Kevin和其他人的看法,对此使用插件是毫无意义的。
window.scrollTo(0, $("#element").offset().top);
上一篇: 为什么$('html')。animate()只适用于IE和$('body')。animate()是否需要Chrome / Safari?
下一篇: 如何使用jQuery滚动到特定项目?
