【发布时间】:2022-01-09 08:31:03
【问题描述】:
我有一个在页面上滚动 200 像素后出现的块
const navShareLink = document.getElementById('navShareLink');
document.addEventListener('scroll', function(e) {
if(window.scrollY > 200 && window.innerWidth > 576) {
navShareLink.style.display = "block";
} else {
navShareLink.style.display = "none";
}
});
.article-wrapper {
min-height: 200vh;
}
.article-wrapper p:first-of-type {
margin-top: 0;
}
footer {
min-height: 100vh;
background-color: #eee;
}
.sidemenu-shares {
z-index: 999;
display: flex;
flex-direction: column;
align-items: center;
height: 100%;
justify-content: center;
position: fixed;
top: 0;
right: 0;
flex-wrap: nowrap;
gap: 40px;
}
.rectangle {
z-index: 998;
transition: opacity 0.5s;
padding: 5px;
height: 106px;
width: 23px;
background-color: rgba(0, 0, 0, 0.1);
border-radius: 24px;
}
<div class="article-wrapper">
<div class="sidemenu-shares">
<div id="navShareLink" class="rectangle">
</div>
</div>
<div class="main-banner">
<h1>Title</h1>
</div>
<div>Main content...</div>
<div>Main content...</div>
<div>Main content...</div>
<div>Main content...</div>
<div>Main content...</div>
<div>Main content...</div>
<div>Main content...</div>
<div>Main content...</div>
<div>Main content...</div>
</div>
<footer>
Footer...
</footer>
但是当它到达页脚所在的页面末尾时,我需要它隐藏起来,这样它就不会爬到页脚中
如果页面具有相同的高度很容易做到,但对我来说它可以是 2500px 或 5000px
是否有可能以某种方式以相反的顺序计算像素,但不是从页面的开头开始,而是从结尾算起 300px?
我试图获取整个页面的高度并减去 300
我用document.documentElement.scrollHeight我以为我只会得到一个像4500这样的数字值,但最后我在打开页面时在弹出窗口中得到了这个值的输出
或者,当它触及页脚时,我可以以某种方式隐藏这个块,是否有可能以某种方式做到这一点?
【问题讨论】:
标签: javascript html jquery css