javascript - 启用滚动功能后,透明导航栏不会变得透明
问题描述
所以,我正在为网页设计比赛做准备,我正在测试一个透明的导航栏,如果 pageYOffset 大于 100,它将变为白色,但是现在,当我在 100px 范围内向后滚动时,导航栏仍然是白色的。
这是我的代码
window.onscroll = function() {
var navbar = document.getElementsByClassName('navbar')[0];
if (window.pageYOffset > 100) {
navbar.style.background = "#fff";
} else {
navbar.style.background = "transparent";
}
}
.navbar {
height: 50px;
width: 100%;
font-family: Arial;
position: fixed;
background: transparent;
color: #fff;
top: 0;
left: 0;
}
.navbar h3 {
float: left;
margin-left: 30px;
margin-top: 20px;
}
.navbar a {
float: right;
padding: 18px;
margin-right: 30px;
text-decoration: none;
color: #333;
}
/** FOR TESTING IN SNIPPET */
body {
height: 1000px;
background: red;
}
<div class="navbar">
<h3>OmniFoods</h3>
<a href="#home">Home</a>
<a href="#about">About</a>
<a href="#contact">Contact</a>
</div>
解决方案
推荐阅读
- angular - ngClass 似乎正在第一次加载;此后,表达式会根据用户交互进行更改,然后不拾取
- excel - 将所有文本框(包含在每个工作表中)复制到 Word 文档
- python-3.x - 在 Linux 服务器上托管基于 SimpleHTTPRequest 构建的 python 应用程序
- javascript - 如何检测用户是否触发了滚动事件与 window.scroll?
- node.js - AWS Personalize 发送事件
- r - 如何将字符转换为日期格式?
- cakephp - CakePHP 4.1 保存 belongsTo 关联不起作用
- javascript - React Redux - 在调度问题之前快速闪现之前的状态
- node.js - Nodejs typescript 测试依赖
- excel - 如果它包含某些文本,我想使用 VBA 将行复制到另一个工作表