javascript - Javascript 更改标记名称的样式
问题描述
我正在尝试完成滚动功能以根据滚动位置修改标题样式。
我对 JS 的了解有限,所以如果它很容易解决,请多多包涵。
位于https://codepen.io/Rhyfelwr/pen/gObyNGB的 Codepen 项目
window.onscroll = function() {scrollHeaderShrinkFunction()};
function scrollHeaderShrinkFunction() {
if (document.body.scrollTop > 50 || document.documentElement.scrollTop > 50) {//when shrunk
document.getElementById("header").style.height = "30px";
document.getElementById("header").style.fontSize = "1.0em";
document.getElementById("header").style.borderBottom = "1px solid #333";
} else {//default
document.getElementById("header").style.height = "90px";
document.getElementById("header").style.fontSize = "3em";
document.getElementById("header").style.borderBottom = "3px solid #333";
}
}
#header {
background-color: #f1f1f1;
padding: 10px;
color: black;
text-align: center;
font-size: 2em;
position: fixed;
top: 0;
left: 0;
width: 100%;
transition: 1s;
}
#header img{
max-height: 100%;
}
<body>
<div id="header">
<img src="https://www.donbur.co.uk/gb-en/css/img/don-bur-logo-svg.svg" alt="logo">
Header
</div>
<div style="margin-top:100px;padding:15px 15px;font-size:30px">
<p>Shrinking Header Logo</p>
<p>Lorem ipsum dolor dummy text sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
<p>Lorem ipsum dolor dummy text sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
<p>Lorem ipsum dolor dummy text sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
<p>Lorem ipsum dolor dummy text sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
</div>
</body>
我使用简单的 getElementById() 来修改 div 样式,但我的页面是 html5,而不是 div ID。
我尝试切换到 getElementsByTagName() 但它似乎不起作用。
请问我错过了什么?
解决方案
该函数getElementsByTagName
返回一个元素数组,而不仅仅是一个!
因此,您需要遍历这些元素:
var elems = document.getElementsByTagName("p");
for(const elem of elems) {
elem.style.height = "30px";
}
推荐阅读
- ios - CMPedometer 保存步骤
- git - 如何禁止GIT自动提交VS2019源码
- matplotlib - 如何摆脱 matplotlib 动画中的压缩伪影?
- javascript - 没有完整 URL 的 axios
- python - 如何比较python中列表的第一项和第二项?
- python-3.x - PIP:我可以忽略错误的 Python 2.7 EOL 警告吗?
- c++ - 为什么Boost中有两个变体类实现?
- c++ - 无法弄清楚为什么我收到错误:'set' has not been declared
- c++ - 将 Q_PROPERTY 从一个类转发到另一个类
- django - Django admin inline 的不同字段集(如果它是“额外”表单)