正如标题所示,我希望当我向下滚动时,我的div消失,而当我想滚动到顶部时,我的div立即重新出现。我已经使它工作,但只有当我到达某个位置时,而不是立即生效。我需要帮助计算滚动的位置,因此效果消失,并立即重新出现。以下是我迄今为止所尝试的:
window.addEventListener('scroll', function() {
if (window.scrollY < 5) {
document.getElementById('search-bar-scroll').classList.add('scrolled');
} else {
document.getElementById('search-bar-scroll').classList.remove('scrolled');
}
});
* {
margin: 0;
padding: 0;
}
img,
fieldset {
border: none;
}
body *,
*:after,
*:before {
box-sizing: border-box;
}
html,
body {
height: 250vh;
}
.main-wrapper {
max-width: 1400px;
margin-left: auto;
margin-right: auto;
}
.search-bar-scroll {
background: #1e5da5;
position: fixed;
height: auto;
width: 100%;
left: 0;
top: 0;
opacity: 0;
transition: 0.3s ease;
}
.scrolled {
opacity: 1;
transition: 150ms all;
}
<div class="search-bar-scroll" id="search-bar-scroll">
<fieldset class="home-header-search">
<div action="#" id="scroll-input-container">
<p>Hello World</p>
</div>
</fieldset>
</div>
2条答案
按热度按时间hi3rlvi21#
编辑。
我现在明白问题所在了。试着保存滚动的最后一个Y位置。
l5tcr1uw2#
感谢布兰登帮助我的答案,效果很好,这个答案是对Rango使用
wheel
事件的评论/建议的回应,它的工作就像一个魅力!我是这么做的: