用溢出滚动到div内的目标

时间:2014-06-25 18:10:29

标签: javascript jquery html css

您好我想使用选项滚动到我的div内的目标:overflow:hidden但是我的效果不好。我不知道为什么我的滚动脚本表现得很奇怪。它不会滚动到正确的目标,或者当我在一个按钮上单击两次它回到另一个目标时。这有什么问题?你能帮帮我吗?

$('a[href^="#"]').on('click',function (e) {
    e.preventDefault();

    //shows what href contains
    var target = this.hash,
    $target = $(target);
    $('.content').stop().animate({
        'scrollTop': $target.offset().top-187 //scroll to top position on href element for example #about
    }, 1000, 'swing');
});

http://jsfiddle.net/PGnZN/1/

2 个答案:

答案 0 :(得分:2)

当您使用.offset() http://api.jquery.com/position/时,您正在使用.position() .offset()获取相对于.position()从偏移父级获取坐标的文档的坐标。在父项上设置相对位置非常重要,以便可以正确计算该值。假设你希望它在中间显示它,我没有触摸187

http://api.jquery.com/offset/

$('.content').stop().animate({
    'scrollTop': $target.position().top-187 //scroll to top position on href element for example #about
}, 1000, 'swing');

CSS

.inside{
    max-width: 680px;
    position: relative;
}

答案 1 :(得分:0)

请试试这个

$('a[href^="#"]').on('click',function (e) {
    e.preventDefault();

    //shows what href contains
    var targethash = this.hash,
    $target = $(targethash);
    $('.content').stop().animate({
        'scrollTop': $target.offset().top//-187 //scroll to top position on href element for example #about
    }, 1000, 'swing');
});