javascript - 单击按钮不起作用 -> 转换

标签 javascript html css

我的(汉堡)按钮有问题。

当我单击它时,它正在向我的标题链接添加一个类,但该类不起作用 -> 我需要在单击时将 transform: translateX(100%) 更改为 transform: translateX(0);

我不知道为什么它不起作用。请帮助我,我尝试了很多方法来修复它,但仍然无法正常工作。

My code so far:

<header>
    <div class="header-logo">
        <p>ecodex</p>
    </div>
    <ul class="header-links">
        <li><a href="#container-two">O NAS</a></li>
        <li><a href="#">OFERTA</a></li>
        <li><a href="#">KONTAKT</a></li>
    </ul>

    <div class="menu">
        <div class="line-one"></div>
        <div class="line-two"></div>
        <div class="line-three"></div>
    </div>
</header>
header {
  display: flex;
  justify-content: space-around;
  align-items: center;
  min-height: 8vh;

  p {
    font-size: 14px;
    letter-spacing: 5px;
    text-transform: uppercase;
  }
  .header-active {
   transform: translateX(0);
  }
  .header-links {
    display: flex;
    justify-content: space-around;
    width: 30%;
    list-style-type: none;
    li {
      font-size: 14px;
      letter-spacing: 3px;
      @media only screen and (max-width: 768px) {
        opacity: 0;
      }
    }

    @media only screen and (max-width: 1024px) {
      width: 60%;
    }
    @media only screen and (max-width: 768px) {
      position: absolute;
      right: 0;
      height: 90vh;
      top: 8vh;
      background: black;
      display: flex;
      flex-direction: column;
      align-items: center;
      color: white;
      width: 50%;
      transform: translateX(100%);
      transition: transform 0.5s ease-in;

      .header-active {
        transform: translateX(0);
      }
    }

  }
  .menu {
    cursor: pointer;
    display: none;
    @media only screen and (max-width: 768px) {
      display: block;
    }
    div {
   width: 25px;
   height: 2px;
   background-color: black;
   margin: 5px;
    }
  }
}
const headerSlide = () => {
    const menu = document.querySelector('.menu');
    const headerLinks = document.querySelector('.header-links');
    menu.addEventListener('click', () => {
        headerLinks.classList.toggle('header-active');
    });
}

headerSlide();

在开发人员工具中,当我单击按钮时,“header-active”类正在添加和删除 - 这很好,但不知道为什么我的 transform: translate(0) 不起作用。

最佳答案

这应该可以解决问题:

.header-active {    
  transform: translateX(0) !important;
}

问题是 .header-links 有 translateX(100%),所以 translateX 被忽略了。我会将 transform: translateX (100%) 移动到另一个类并在添加 .header-links 之前删除它。

CSS

.tX100 {
  transform: translateX(100%);
}

HTML

<ul class="header-links tX100">

JS

headerLinks.classList.toggle('tx100');
headerLinks.classList.toggle('header-active');

关于javascript - 单击按钮不起作用 -> 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58258380/

相关文章:

javascript - 从 bash 脚本运行 javascript

javascript - 将日期格式从 'yyyy-mm-dd' 更改为 'yyyy MMM dd' 或 'MMM dd, yyyy'

javascript - 类型错误 : undefined is not a function in Node. js

javascript - %2F 而不是 url 中的斜杠?

html - 使用 CSS 将导航按钮标记为事件

jquery - 是否可以将超大屏幕和导航栏固定到屏幕顶部?

jquery 单元格选择开始为更多单元格制作 rowspan

javascript - 通过 Javascript 禁用文本字段

html - 为什么 css 边距不起作用?

javascript - 在悬停时更改 CSS writen 文本框中的特定字符颜色