javascript - 如何实现滚动一点然后到达顶部时保持不变的div

标签 javascript jquery html css

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

https://youtu.be/3_aysne5P6A

这是我当前的实现:

https://youtu.be/wIvi6CaOTsA

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

我不知道这种效果叫什么,所以我无法用谷歌搜索它。

我将如何实现这样的东西,css 是否足够,或者是否需要涉及 javascript?

网络上是否有任何易于理解的例子,您有链接?

最佳答案

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

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;
}

这个是为了在向下滚动时隐藏和在向上滚动时显示,只需替换代码中的那些就可以了;)

关于javascript - 如何实现滚动一点然后到达顶部时保持不变的div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41862604/

相关文章:

javascript - 如何知道是否有人通过 javascript 登录?

javascript - HTML 表获取选中的复选框和文本元素

javascript - 如何允许在 UserControl 中仅选中四个复选框中的一个?

javascript - 为什么我的正则表达式无法正常工作?

javascript - jQuery UI - 我什么时候应该在小部件上使用 destroy 方法

jquery - 如何修复滚动条总是在div的底部?

javascript - jQuery:我们不能将 jQuery(this) 分配给一个变量吗?

javascript - 为什么数据不能与JSON文件绑定(bind)?

html - 如何在固定背景上将文本框放在图像上?

javascript - 定位所有类元素以从同一点对齐