javascript - 开始向下滚动后更改菜单背景不透明度
问题描述
我尝试了很多代码片段来做到这一点,但没有任何效果。
在 CSS 中,我使用它使菜单在移动设备上浮动:
@media screen and (max-width: 900px){
header#s5_header_area1 {
position: sticky;
top: 0;
z-index: 2;
}
}
它正在工作,但我想在开始向下滚动后给菜单一点透明度。我怎样才能做到这一点?
解决方案
当用户滚动时,它会将一个类.menu--alt
应用于菜单,否则它将只有类.menu
。
更新 CSS 应该做你想做的事。回顾您的问题,您将需要编辑header#s5_header_area1
使用 javascript 的样式 - 下面示例的简单重构就可以了。
const menu = document.querySelector(".menu");
document.addEventListener("scroll", () => {
// use document.documentElement for chrome, firefox, ie or opera
// and document.body for safari since that's where overflow is set in those browsers
if (document.documentElement.scrollTop > 0)
menu.classList.add("menu--alt");
else
menu.classList.remove("menu--alt");
});
.content {
height: 2000px;
background: pink;
}
.menu {
background-color: #000;
color: #fff;
position: fixed;
top: 0;
left: 0;
padding: 20px;
box-sizing: border-box;
}
.menu--alt {
opacity: 0.5;
}
<div class="menu">
menu (not clickable) - scroll to see opacity change
</div>
<div class="content">
hi there
</div>
推荐阅读
- php - 无法将我的 php 代码连接到 sql server db
- node.js - Angular 无法通过移动连接加载
- python - Django:将用户添加到信号中的组
- c# - 如何保护 azure web 应用程序免受滥用电话的侵害?
- python - 删除python数据框中具有相同索引值的多行
- android - 管理员不允许更改时的Android RequestPermission
- react-native - React Native:电话号码未更新并继续提供错误消息
- mysql - MySQL在两列序列中查找间隙
- r - 如何在多列中保留最后一组完整的观察结果?
- c# - 无法将触发器设置为切换按钮