css 为什么我的标题动画不工作使用Javascript?

plupiseo  于 2022-12-30  发布在  Java
关注(0)|答案(1)|浏览(152)

当我向下滚动页面时,我试图改变headerheight,但是由于这样或那样的原因,它不起作用。我已经试过把console.log放在上面,检查它是否起作用。

window.onload = () => {
  const header = document.querySelector("header");

  window.addEventListener("scroll", () => {
    if (window.scrollY > 50) {
      console.log("heeeeeeeey");
      header.style.height = "50px";
    } else {
      header.style.height = "12vh";
    }
  });
};
header {
  display: flex;
  background-color: var(--color3);
  flex-direction: row;
  padding: 0px 120px;
  min-height: 12vh;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  margin: 0 auto;
  position: fixed;
  font-family: var(--titleFont);
  top: 0;
  z-index: 10;
}
<header>
  <div>
    <a>name</a>
  </div>
  <ul>
    <li><a href="#bio">Bio</a></li>
    <li><a href="#portfolio">Portfolio</a></li>
    <li><a href="#contact">Contact</a></li>
  </ul>
</header>
f4t66c6m

f4t66c6m1#

最小高度覆盖

这里的代码只有一个问题,那就是在CSS中。只需从header中删除min-height属性selector
让我们检查标题选择器:

header {
  display: flex;
  background-color: var(--color3);
  flex-direction: row;
  padding: 0px 120px;
  min-height: 12vh;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  margin: 0 auto;
  position: fixed;
  font-family: var(--titleFont);
  top: 0;
  z-index: 10;
}

min-height属性始终覆盖heightmax-height

最小高度:12 vh;
看Next.js代码:

if (window.scrollY > 50) {
  console.log("heeeeeeeey");
  header.style.height = "50px";
}

在这里,当你设置**header.style.height =“50 px”**时,这并不重要,因为最小高度覆盖了高度,大小不会改变。
要了解更多信息,请查看此文档https://css-tricks.com/almanac/properties/m/min-height/

相关问题