动画ScrollTop用于单页锚点的侧面导航

时间:2015-07-17 19:15:17

标签: javascript jquery animation navigation scrolltop

我正在尝试在单个页面上的锚点之间进行平滑过渡,并在侧面显示突出显示的固定导航。我是一个完整的新手,所以我不知道如何实现“(document.body).animate”或者进行过渡的必要条件。

TL; DR: 平滑滚动到锚点而不是跳到锚点

这是js:

$('#firstlink').addClass('active');

$(window).scroll(function(){
    $('.active').each(function(){
        $(this).removeClass('active');
    });

    var scrollTop = $(window).scrollTop();


    if($(window).scrollTop() + $(window).height() == $(document).height()) 
        $('#fifthlink').addClass('active');
    else if (scrollTop > $("#fifth").position().top)
        $('#fifthlink').addClass('active');
    else if (scrollTop > $("#fourth").position().top)
        $('#fourthlink').addClass('active');
    else if (scrollTop > $("#third").position().top)
        $('#thirdlink').addClass('active');
    else if (scrollTop > $("#second").position().top)
        $('#secondlink').addClass('active');
    else
        $('#firstlink').addClass('active');
});

这里是完整的jsfiddle:https://jsfiddle.net/e03u0kqe/

2 个答案:

答案 0 :(得分:1)

这可能对您有用:

implode

我在自己的网站上使用它,效果很好。

希望这对你有用。

答案 1 :(得分:1)

这可能在其他地方得到了解答但是应该这样做:

    $('#sidenav a').on('click', function(e) {
        e.preventDefault();
        var target = $(this).attr('href');
        var scrollTo = $(target).offset().top;
        var duration = 1000;

        $('body').animate({
            scrollTop: scrollTo 
        }, duration);
    });

在窗口滚动事件后添加它。

https://jsfiddle.net/e03u0kqe/2/