如何实现div滚动一点点然后在它到达顶部时保持put

时间:2017-01-25 22:11:17

标签: javascript jquery html css

我需要实现这个效果,你可以在这里看到

  

https://youtu.be/3_aysne5P6A

这是我目前的实施:

  

https://youtu.be/wIvi6CaOTsA

基本上当用户向下滚动时,div几乎上升到它停止的顶部,然后当用户向下滚动几乎接近但尚未在页面底部时,相同的div现在上升并消失。

我不知道这个效果可以被调用,所以我不能谷歌。

我如何实现这样的东西,css足够还是需要javascript参与?

网上是否有任何易于遵循的示例,您有链接?

1 个答案:

答案 0 :(得分:1)

您正在寻找的是一个粘性导航栏/元素

http://jsfiddle.net/mariusc23/s6mLJ/31/

    // Hide Header on on scroll down
var didScroll;
var lastScrollTop = 0;
var delta = 5;
var navbarHeight = $('header').outerHeight();

$(window).scroll(function(event){
    didScroll = true;
});

setInterval(function() {
    if (didScroll) {
        hasScrolled();
        didScroll = false;
    }
}, 250);

function hasScrolled() {
    var st = $(this).scrollTop();

    // Make sure they scroll more than delta
    if(Math.abs(lastScrollTop - st) <= delta)
        return;

    // If they scrolled down and are past the navbar, add class .nav-up.
    // This is necessary so you never see what is "behind" the navbar.
    if (st > lastScrollTop && st > navbarHeight){
        // Scroll Down
        $('header').removeClass('nav-down').addClass('nav-up');
    } else {
        // Scroll Up
        if(st + $(window).height() < $(document).height()) {
            $('header').removeClass('nav-up').addClass('nav-down');
        }
    }

    lastScrollTop = st;
}

这个用于隐藏在向下滚动并在向上滚动时显示,只需替换代码中的那些,你应该是好的;)