javascript - 如何在javascript中选择元素
问题描述
JavaScript 新手。我试图让一个标题元素在向下滚动时消失,并在向上滚动时出现。
为什么不选择<header>
元素?
var prevScrollpos = window.pageYOffset;
window.onscroll = function() {
var currentScrollPos = window.pageYOffset;
if (prevScrollpos > currentScrollPos) {
document.getElementsByTagName("header").style.top = "0";
} else {
document.getElementsByTagName("header").style.top = "-72px";
}
prevScrollpos = currentScrollPos;
}
header {
height: 72px;
background-color: red;
position: fixed;
top: 0;
left: 0;
right: 0;
transition: top 0.2s ease-in-out;
z-index: 200;
}
但是,如果我向其中添加一个 ID,<header>
我可以使用以下命令选择它
document.getElementById("导航栏")
解决方案
.getElementsByTagName()返回一个类似于数组的 HTMLCollection。你需要这样做:
document.getElementsByTagName("header")[0].style.top = "0";
或使用.querySelector()接受 CSS 选择器并返回匹配的第一个元素:
document.querySelector("header").style.top = "0";
推荐阅读
- asp.net-core - 目录中的 HttpPost 文件
- javascript - 根据 URL 路径使用不同的 CSS 文件
- javascript - 在 websocket 事件中,我试图在对象的关联数组中切片一个数组,但它不起作用
- google-cloud-dataprep - Dataprep:运行作业到excel文件后数组类型无效
- r - 在 R 中转换日期
- ios - 如何在 Swift iOS 的 UITextField 中格式化粗体/斜体等文本?
- typescript - 扩展有区别的工会
- excel - 有没有办法共享 Excel VB 宏作为所有未来工作簿的工具?
- msbuild - MSBUILD:“项目中不存在目标。” 修改 DependsOnTarget 后
- python - 如何使用 jinj2 标签将多个 docx 模板数据包含到单个模板中