导航栏不会隐藏在滚动条上

赫克托·哈里斯·伯顿

我刚刚在网站的右下角添加了一个按钮,允许用户返回页面顶部,但是当用户滚动时,它似乎取消了我的导航栏的隐藏。我整个上午都在看它,非常感谢您能以崭新的眼神看着它,任何帮助都将是非常棒的!

谢谢。

var prevScrollpos = window.pageYOffset;
window.onscroll = function() {
  var currentScrollPos = window.pageYOffset;
  if (prevScrollpos > currentScrollPos) {
    document.getElementById("navigation").style.top = "0";
  } else {
    document.getElementById("navigation").style.top = "-70px";
  }
  prevScrollpos = currentScrollPos;
}

window.onscroll = function() {scrollFunction()};

function scrollFunction() {
  if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {
    document.getElementById("myBtn").style.display = "block";
  } else {
    document.getElementById("myBtn").style.display = "none";
  }
}

function topFunction() {
  document.body.scrollTop = 0; 
  document.documentElement.scrollTop = 0; 
}
nav {
 z-index: 99;
 box-sizing: border-box;
 position: fixed;
 top: 0;
 left: 0;
 right: 0;
 padding: 20px 60px;
 text-align: center;
 background-color: white;
 font-size: 18px;
 letter-spacing: 1px;
 transition: top 0.3s;
 border-bottom: #f1f1f1 2px solid;
}

nav a:first-child {
  float: left;
}

.main-nav {
  text-decoration: none;
  display: inline-block;
  float: right;
  text-transform: uppercase;
  color: #adb3c1;
  padding: 1px 0;
  margin: 0 10px;
  transition: all 0.15s ease-in-out;
  z-index: 10;
}

#navigation a:hover {
 color: blue;
 transition: 0.5s;
}

.fa-long-arrow-alt-up {
  display: none; 
  position: fixed; 
  bottom: 20px; 
  right: 20px; 
  z-index: 99; 
  border: none; 
  outline: none; 
  background: none; 
  color: black; 
  cursor: pointer; 
  padding: 15px; 
  font-size: 18px; 
}
#myBtn:hover {
  color: red; 
}
<!DOCTYPE html>
<html>
	<head>
		<title>Hector's Portfolio</title>
		<link rel="stylesheet" type="text/css" href="css/style.css">
		<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
		<script src="js/javascript.js"></script>
		<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.7.2/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" crossorigin="anonymous">
		<meta name="viewport" content="width=device-width, initial-scale=1">
	</head>
<body class="layout-portfolio">
	<nav id="navigation">
	  <a data-scroll class="main-nav" class="nav-hover" href="#home">Home</a>
	  <a data-scroll class="main-nav" class="nav-hover" href="#contact">Contact</a>
	  <a data-scroll class="main-nav" class="nav-hover" href="#about">About</a>
	  <a data-scroll class="main-nav" class="nav-hover" href="#projects">Projects</a>
	</nav>
	<!-- Button to go to top -->
	<button onclick="topFunction()" id="myBtn" class="fas fa-long-arrow-alt-up"></button>
</body>
</html>

节奏木兰

这里的问题是,第二次滚动将覆盖第一个。因此,您可以将代码移至单个功能。我更新了以下代码:

var prevScrollpos = window.pageYOffset;
window.onscroll = function() {scrollFunction()};

function scrollFunction() {
  if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {
    document.getElementById("myBtn").style.display = "block";
  } else {
    document.getElementById("myBtn").style.display = "none";
  }
  
  var currentScrollPos = window.pageYOffset;
  if (prevScrollpos > currentScrollPos) {
    document.getElementById("navigation").style.top = "0";
  } else {
    document.getElementById("navigation").style.top = "-70px";
  }
  prevScrollpos = currentScrollPos;
}

function topFunction() {
  document.body.scrollTop = 0; 
  document.documentElement.scrollTop = 0; 
}
nav {
 z-index: 99;
 box-sizing: border-box;
 position: fixed;
 top: 0;
 left: 0;
 right: 0;
 padding: 20px 60px;
 text-align: center;
 background-color: white;
 font-size: 18px;
 letter-spacing: 1px;
 transition: top 0.3s;
 border-bottom: #f1f1f1 2px solid;
}

nav a:first-child {
  float: left;
}

.main-nav {
  text-decoration: none;
  display: inline-block;
  float: right;
  text-transform: uppercase;
  color: #adb3c1;
  padding: 1px 0;
  margin: 0 10px;
  transition: all 0.15s ease-in-out;
  z-index: 10;
}

#navigation a:hover {
 color: blue;
 transition: 0.5s;
}

.fa-long-arrow-alt-up {
  display: none; 
  position: fixed; 
  bottom: 20px; 
  right: 20px; 
  z-index: 99; 
  border: none; 
  outline: none; 
  background: none; 
  color: black; 
  cursor: pointer; 
  padding: 15px; 
  font-size: 18px; 
}
#myBtn:hover {
  color: red; 
}
<!DOCTYPE html>
<html>
	<head>
		<title>Hector's Portfolio</title>
		<link rel="stylesheet" type="text/css" href="css/style.css">
		<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
		<script src="js/javascript.js"></script>
		<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.7.2/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" crossorigin="anonymous">
		<meta name="viewport" content="width=device-width, initial-scale=1">
	</head>
<body class="layout-portfolio">
	<nav id="navigation">
	  <a data-scroll class="main-nav" class="nav-hover" href="#home">Home</a>
	  <a data-scroll class="main-nav" class="nav-hover" href="#contact">Contact</a>
	  <a data-scroll class="main-nav" class="nav-hover" href="#about">About</a>
	  <a data-scroll class="main-nav" class="nav-hover" href="#projects">Projects</a>
	</nav>
  <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Adipisci amet aperiam consectetur cupiditate deserunt dolore ducimus eius eos et ex explicabo fugit illo impedit inventore laudantium, maiores maxime minus quaerat, quasi rerum soluta tempore vel vitae? Ad, aliquid, consequatur deserunt distinctio expedita fuga labore modi perspiciatis quia ratione sequi sint soluta tempora, voluptates voluptatum. Aperiam consequuntur cumque delectus nulla odit placeat rem saepe sunt. Id labore magnam magni modi molestiae, neque possimus veniam? Blanditiis, commodi delectus dicta enim id incidunt modi nam quas saepe soluta. Aliquid, culpa, deserunt eveniet explicabo harum hic impedit maiores placeat qui quidem, quisquam reiciendis velit voluptatem? A atque consequatur, dolorum magni molestiae repudiandae saepe. Aliquid blanditiis debitis doloremque eum facere magni officiis similique soluta totam ullam! Aliquam amet aspernatur consectetur cumque ducimus et minima quis repellat repudiandae voluptate. Adipisci amet consectetur distinctio, error ex excepturi explicabo iure magnam neque obcaecati officiis quam quibusdam, vel, voluptas?</p>
  <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Adipisci amet aperiam consectetur cupiditate deserunt dolore ducimus eius eos et ex explicabo fugit illo impedit inventore laudantium, maiores maxime minus quaerat, quasi rerum soluta tempore vel vitae? Ad, aliquid, consequatur deserunt distinctio expedita fuga labore modi perspiciatis quia ratione sequi sint soluta tempora, voluptates voluptatum. Aperiam consequuntur cumque delectus nulla odit placeat rem saepe sunt. Id labore magnam magni modi molestiae, neque possimus veniam? Blanditiis, commodi delectus dicta enim id incidunt modi nam quas saepe soluta. Aliquid, culpa, deserunt eveniet explicabo harum hic impedit maiores placeat qui quidem, quisquam reiciendis velit voluptatem? A atque consequatur, dolorum magni molestiae repudiandae saepe. Aliquid blanditiis debitis doloremque eum facere magni officiis similique soluta totam ullam! Aliquam amet aspernatur consectetur cumque ducimus et minima quis repellat repudiandae voluptate. Adipisci amet consectetur distinctio, error ex excepturi explicabo iure magnam neque obcaecati officiis quam quibusdam, vel, voluptas?</p>
  <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Adipisci amet aperiam consectetur cupiditate deserunt dolore ducimus eius eos et ex explicabo fugit illo impedit inventore laudantium, maiores maxime minus quaerat, quasi rerum soluta tempore vel vitae? Ad, aliquid, consequatur deserunt distinctio expedita fuga labore modi perspiciatis quia ratione sequi sint soluta tempora, voluptates voluptatum. Aperiam consequuntur cumque delectus nulla odit placeat rem saepe sunt. Id labore magnam magni modi molestiae, neque possimus veniam? Blanditiis, commodi delectus dicta enim id incidunt modi nam quas saepe soluta. Aliquid, culpa, deserunt eveniet explicabo harum hic impedit maiores placeat qui quidem, quisquam reiciendis velit voluptatem? A atque consequatur, dolorum magni molestiae repudiandae saepe. Aliquid blanditiis debitis doloremque eum facere magni officiis similique soluta totam ullam! Aliquam amet aspernatur consectetur cumque ducimus et minima quis repellat repudiandae voluptate. Adipisci amet consectetur distinctio, error ex excepturi explicabo iure magnam neque obcaecati officiis quam quibusdam, vel, voluptas?</p>
	<!-- Button to go to top -->
	<button onclick="topFunction()" id="myBtn" class="fas fa-long-arrow-alt-up"></button>
</body>
</html>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在滚动条上隐藏导航栏不会在向上滚动后将导航条固定在适当的位置

来自分类Dev

滚动条上的粘性导航栏

来自分类Dev

使用Headroom JS隐藏滚动条上的导航栏并在需要时显示

来自分类Dev

使用Headroom JS隐藏滚动条上的导航栏,并在需要时显示

来自分类Dev

动态更改滚动条上的导航栏颜色

来自分类Dev

底部导航在滚动条上隐藏Recycler视图问题

来自分类Dev

底部导航在滚动条上隐藏Recycler视图问题

来自分类Dev

物料设计清单:在滚动条上隐藏应用栏?

来自分类Dev

React Native:试图在滚动条上隐藏搜索栏

来自分类Dev

使用CSS在导航栏上创建“不可见”滚动条(其中隐藏不起作用)

来自分类Dev

引导导航栏与滚动条合拢

来自分类Dev

Chrome(Windows)不会隐藏滚动条

来自分类Dev

导航栏下的UIToolBar,滚动条上没有工具栏

来自分类Dev

在RecyclerView滚动条上隐藏工具栏会导致文本移到通知栏

来自分类Dev

滚动条上的固定侧栏

来自分类Dev

将div捕捉到滚动条上的固定导航栏

来自分类Dev

隐藏RichTextBox滚动条而不会丢失鼠标滚轮滚动

来自分类Dev

隐藏滚动条上的工具栏将无法正常工作[CoordinatorLayout]

来自分类Dev

在片段内而不是活动内使用recyclerview时,在滚动条上隐藏工具栏

来自分类Dev

在BottomSheet视图中隐藏滚动条上的工具栏

来自分类Dev

Bootstrap固定顶部导航栏与垂直滚动条重叠

来自分类Dev

Bootstrap固定顶部导航栏与垂直滚动条重叠

来自分类Dev

如何删除purecss导航栏的滚动条?

来自分类Dev

如何使用滚动条更改导航栏背景?

来自分类Dev

隐藏控制台中的滚动条而不会闪烁

来自分类Dev

滚动条在调整大小时不会隐藏。

来自分类Dev

如何使工具栏隐藏在滚动Android Studio上

来自分类Dev

为什么导航栏上的导航栏品牌隐藏在Chrome上?

来自分类Dev

需要帮助在滚动条上制作粘性导航栏-在Node.js / Express中使用Jade和Stylus

Related 相关文章

  1. 1

    在滚动条上隐藏导航栏不会在向上滚动后将导航条固定在适当的位置

  2. 2

    滚动条上的粘性导航栏

  3. 3

    使用Headroom JS隐藏滚动条上的导航栏并在需要时显示

  4. 4

    使用Headroom JS隐藏滚动条上的导航栏,并在需要时显示

  5. 5

    动态更改滚动条上的导航栏颜色

  6. 6

    底部导航在滚动条上隐藏Recycler视图问题

  7. 7

    底部导航在滚动条上隐藏Recycler视图问题

  8. 8

    物料设计清单:在滚动条上隐藏应用栏?

  9. 9

    React Native:试图在滚动条上隐藏搜索栏

  10. 10

    使用CSS在导航栏上创建“不可见”滚动条(其中隐藏不起作用)

  11. 11

    引导导航栏与滚动条合拢

  12. 12

    Chrome(Windows)不会隐藏滚动条

  13. 13

    导航栏下的UIToolBar,滚动条上没有工具栏

  14. 14

    在RecyclerView滚动条上隐藏工具栏会导致文本移到通知栏

  15. 15

    滚动条上的固定侧栏

  16. 16

    将div捕捉到滚动条上的固定导航栏

  17. 17

    隐藏RichTextBox滚动条而不会丢失鼠标滚轮滚动

  18. 18

    隐藏滚动条上的工具栏将无法正常工作[CoordinatorLayout]

  19. 19

    在片段内而不是活动内使用recyclerview时,在滚动条上隐藏工具栏

  20. 20

    在BottomSheet视图中隐藏滚动条上的工具栏

  21. 21

    Bootstrap固定顶部导航栏与垂直滚动条重叠

  22. 22

    Bootstrap固定顶部导航栏与垂直滚动条重叠

  23. 23

    如何删除purecss导航栏的滚动条?

  24. 24

    如何使用滚动条更改导航栏背景?

  25. 25

    隐藏控制台中的滚动条而不会闪烁

  26. 26

    滚动条在调整大小时不会隐藏。

  27. 27

    如何使工具栏隐藏在滚动Android Studio上

  28. 28

    为什么导航栏上的导航栏品牌隐藏在Chrome上?

  29. 29

    需要帮助在滚动条上制作粘性导航栏-在Node.js / Express中使用Jade和Stylus

热门标签

归档