css - 导航栏背景仅对正文背景透明
问题描述
是否可以使导航栏透明,以便透明度仅用于背景颜色?例如,我在顶部有一个固定的导航栏,当我向下滚动时,我只希望导航栏具有容器当前背景颜色的颜色,这样如果我向下滚动就看不到文本?(我使用的是渐变色而不是固定颜色...)
解决方案
使用 Javascript,您可以添加一个滚动事件侦听器,然后检查用户滚动了多远。因此,如果他们滚动超过某个点,则使背景透明。否则,将其保留为渐变。
checkNavBackground = () => {
var nav = document.getElementsByClassName('navbar')[0]
var threshold = 400
var scrollTop = (window.pageYOffset !== undefined) ? window.pageYOffset : (document.documentElement || document.body.parentNode || document.body).scrollTop;
if (scrollTop > threshold){
nav.style.background= 'transparent'
} else {
nav.style.background = 'linear-gradient(to right, red , yellow)'
}
}
document.addEventListener('scroll', checkNavBackground)
.navbar {
border: solid 1px black;
height: 30px;
width: 100%;
background: linear-gradient(to right, red , yellow);;
position: fixed;
top: 0px;
}
.body{
width: 100%;
height: 1000px;
}
<div class='body'>
<div class='navbar'>
Here is a div with text
</div>
</div>
推荐阅读
- php - 有什么方法可以将字符串中的图像(带有图像的内容)放入 html 中?
- time-complexity - 所有用于计算算法运行时间的假设机器模型都相同吗?
- python - Django 和 SQLite:DurationField 算术
- reactjs - 即使使用箭头功能也无法设置状态
- angular - 在 Angular 中调用 document.documentElement.classList.add 有什么问题吗?
- postgresql - 如何查询版本化时间序列数据以获取可用的最新版本
- typescript - 将类型化对象的字段与 Typescript 中的原语进行比较的正确方法是什么?
- php - 是否有一个 php 函数可以将 nofollow 添加到链接?
- excel - 尝试从宏打开多个工作表时关闭弹出窗口
- javascript - 使用 Falcor 设置请求标头