gpt4 book ai didi

jquery - 滚动到 div 底部/从 div 底部滚动时显示/隐藏页眉页脚

转载 作者:行者123 更新时间:2023-12-01 06:10:06 31 4
gpt4 key购买 nike

我需要隐藏页眉并显示页脚(反之亦然)
当我向下滚动(到达底部)并向上滚动(离开底部)时,某个 <div> :

我正在使用 jQuery,目前我的代码中有一个让我发疯的错误:
滚动后,所有内容都开始重复“弹跳”...

我尝试使用stop() , one() , queue: false ,但没有成功...

当我设置 #main 的高度时,问题似乎出现了,
(如果该部分被注释掉,似乎工作正常,如下面的代码所示)

但我需要调整大小#main因为页脚比页眉大。

$(window).load(function(){

xxx = '';
$main.css('height','calc(100% - 79px)');

$('.column.right').on('scroll', function(){

if( ($(this).scrollTop() + $(this).innerHeight()) == $(this)[0].scrollHeight){
xxx = 'equal';
console.log('equal');

$header.one().stop().slideUp();
$footer.one().stop().slideDown({ queue: false, duration: 100, complete: function(){ setTimeout(function(){ /*$main.css('height','calc(100% - 221px)');*/ }, 0); } });
}
else if( ($(this).scrollTop() + $(this).innerHeight()) < ($(this)[0].scrollHeight - 0) && xxx == 'equal'){
xxx = 'minor';
console.log('minor');

$header.one().stop().slideDown();
$footer.one().stop().slideUp({ queue: false, duration: 100, complete: function(){ setTimeout(function(){ /*$main.css('height','calc(100% - 79px)');*/ }, 0); } });
}

});

});

我也在使用 CSS overflow: hiddenhtmlbody

最佳答案

http://jsfiddle.net/mariusc23/s6mLJ/31/这就是我认为你所要求的......看看这个。我相信这会对你有帮助html代码-

<header class="nav-down">
This is your menu.
</header>
<main>
This is your body.
</main>
<footer>
This is your footer.
</footer>

javascript代码-

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

CSS代码-

body {
padding-top: 40px;
}

header {
background: #f5b335;
height: 40px;
position: fixed;
top: 0;
transition: top 0.2s ease-in-out;
width: 100%;
}

.nav-up {
top: -40px;
}

main {
background:url(
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAPklEQVQYV2O8dOnSfwYg0NPTYwTRuAAj0QqxmYBNM1briFaIzRbi3UiRZ75uNgUHGbfvabgfsHqGaIXYPAMAD8wgC/DOrZ4AAAAASUVORK5CYII=
) repeat;
height: 2000px;
}

footer { background: #ddd;}
* { color: transparent}

关于jquery - 滚动到 div 底部/从 div 底部滚动时显示/隐藏页眉页脚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34812345/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com