scrollTop jquery,用id滚动到div?

Jak*_*ake 33 javascript css jquery scroll position

所以这是我现有的代码

$(document).ready(function() {
    $('.abouta').click(function(){
        $('html, body').animate({scrollTop:308}, 'slow');
        return false;
    });
    $('.portfolioa').click(function(){
        $('html, body').animate({scrollTop:708}, 'slow');
        return false;
    });
    $('.contacta').click(function(){
        $('html, body').animate({scrollTop:1108}, 'slow');
        return false;
    });
});
Run Code Online (Sandbox Code Playgroud)

当您单击链接(例如"abouta")时,它会滚动到页面的特定部分.我宁愿做一个scrollTo然后是div的id,这样如果我改变填充等我就不必继续改变scrollTo位置.有什么办法吗?谢谢

jon*_*ohn 103

代替

$('html, body').animate({scrollTop:xxx}, 'slow');
Run Code Online (Sandbox Code Playgroud)

使用

$('html, body').animate({scrollTop:$('#div_id').position().top}, 'slow');
Run Code Online (Sandbox Code Playgroud)

这将返回您选择的任何元素的绝对顶部位置 #div_id

  • 我很惊讶没有人评论过这么长时间 - 问题就在于它,真的要求`.offset()`而不是`.position()`作为解决方案,对吧?目标div可以在页面的任何位置,而`.position()`[返回相对于其容器盒的顶部偏移量](http://api.jquery.com/position/).因此,如果目标div是其父级的第一个子级,上面的代码将把您带到文档的顶部.或者我错过了什么? (4认同)