首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将此导航栏修改为仅在100px后才会在向下滚动时隐藏?

如何将此导航栏修改为仅在100px后才会在向下滚动时隐藏?
EN

Stack Overflow用户
提问于 2021-02-04 22:16:53
回答 2查看 134关注 0票数 1

我目前有一个导航栏,它在向下滚动时消失,在向上滚动时再次出现(并且在页面顶部总是可见的)。

这在桌面上工作得很好-当页面在顶部时,导航总是显示出来,但在移动设备上,当页面在页面顶部时,导航会出现故障并完全消失。

我如何修改它,使其在向下滚动第一个100px时可见,然后消失,直到用户向上滚动?

代码语言:javascript
复制
var prevScrollpos = window.pageYOffset;
window.onscroll = function () {
  var currentScrollPos = window.pageYOffset;
  if (prevScrollpos > currentScrollPos) {
    document.getElementById('mainNav').style.top = '0';
  } else {
    document.getElementById('mainNav').style.top = '-100px';
  }
  prevScrollpos = currentScrollPos;
};
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-02-04 22:31:53

解决方案

代码语言:javascript
复制
var prevScrollpos = window.pageYOffset;
window.onscroll = function () {
  var currentScrollPos = window.pageYOffset;
  if (prevScrollpos > currentScrollPos || currentScrollPos <= 100) {
     document.getElementById('mainNav').style.top = '0';
  } else {
     document.getElementById('mainNav').style.top = '-100px';
   }
  prevScrollpos = currentScrollPos;
};
票数 3
EN

Stack Overflow用户

发布于 2021-02-04 22:49:20

您可以为滚动和非滚动页面设置元素样式。请看下面的简单解决方案:

代码语言:javascript
复制
function update() {
  window.document.body.setAttribute('data-scrolled', window.pageYOffset > 100 ? 'Y' : 'N');
}

window.onscroll = update;
window.onresize = update;
update();
代码语言:javascript
复制
body {
  height: 4000px;
}

#test { 
  position: fixed;
}

body[data-scrolled="N"] #test { 
  color: blue;
}  

body[data-scrolled="Y"] #test { 
  color: red;
}  
代码语言:javascript
复制
<div id="test">Please scroll the page</div>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66047445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档