簡體   English   中英

導航欄在滾動時不改變背景顏色

[英]Navbar not changing background colour when scrolling

嘗試了一些不同的 JavaScript 選項,我希望它是我遺漏的非常簡單的東西。

到目前為止,關於我究竟如何做到這一點的幾次嘗試和谷歌搜索似乎使我走上了一條無路可走的道路。

任何有關如何解決此問題的建議將不勝感激。

 window.onscroll = function() { scrollFunction() }; function scrollFunction() { if (document.body.scrollTop > 80 || document.documentElement.scrollTop > 80) { document.getElementsByClassName(".navbar").style.backgroundColor = "transparent"; } else { document.getElementsByClassName(".navbar").style.backgroundColor = "black"; } }
 ul { padding: 0; margin: 0; } ul li { list-style-type: none; } .hero-img { filter: brightness(30%); background-size: cover; } .hero-image-overlay { width: 50%; margin: 0 auto; padding: 1rem 0; } .navbar { padding: 0; background-color: transparent; position: fixed; top: 0; width: 100%; } .navbar ul { display: flex; position: relative; } .navbar ul li { padding: .5rem 0; color: white; padding: 1rem; width: 100%; } ul a { display: inline-block; } .nav-img { width: 175px; } .header-li:hover, .header-li:focus { color: orangered; transition: all .3s; } .header-li { display: none; } .news-posts { max-width: 1250px; columns: 500px 2; margin: 0 auto; }
 <html> <body> <!-- start of Header area --> <header> <div class="hero-image"> <img class="hero-img" src="img/lower-height-team-photo.jpg" alt="team-photo"> </div> <nav class="navbar"> <ul class="header-ul"> <a href="#"> <li class="img-li"><img src="img/imageedit_3_3953793469.png" alt="" class="nav-img"></li> </a> <a href="#"> <li class="header-li">About Us</li> </a> <a href="#"> <li class="header-li">Team</li> </a> <a href="#"> <li class="header-li">Fixtures/Results</li> </a> <a href="#"> <li class="header-li">News</li> </a> <a href="#"> <li class="header-li">Contact</li> </a> </ul> <a href="#" class="hamburger-li"><i class="fa fa-bars fa-2x"></i></></a> </nav> </header> </body> </html>

非常感謝您提供的任何解決方案。

首先,刪除 . 按類名獲取元素時簽名,應該是

   document.getElementsByClassName("navbar")

並不是

   document.getElementsByClassName(".navbar")

另外,請注意getElementsByClassName返回一個數組,因此,為了設置背景顏色起作用,它應該是這樣的:

document.getElementsByClassName(".navbar")[0].style.backgroundColor = "black";

這是完整的javascript代碼

function scrollFunction() {
  if (document.body.scrollTop > 80 || document.documentElement.scrollTop > 80) {
    document.getElementsByClassName("navbar")[0].style.backgroundColor = "transparent";
  } else {
    document.getElementsByClassName("navbar")[0].style.backgroundColor = "black";
  }
}
// Do not forget to call the function 
scrollFunction();

同時刪除display: none in header-li 類

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM