@sachiyo171012

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

ハンバーガーメニューのリストが表示されない

解決したいこと

HTML/CSSを学習中です。
サイトの模写をしているのですが、ハンバーガーメニューをクリックした際中のリストが表示されなくなってしまいました。
お力を借りれたらと思います。

HTML

  <div class="hamburger-nav">
    <div id="nav">
      <ul>
        <li><a href="#">企業理念</a></li>
        <li><a href="#">施工事例</a></li>
        <li><a href="#">採用情報</a></li>
        <li><a href="#">お問い合わせ</a></li>
      </ul>
    </div>
    <div id="hamburger">
      <span class="inner_line" id="line1"></span>
      <span class="inner_line" id="line2"></span>
      <span class="inner_line" id="line3"></span>
    </div>
 </div>

<script>
      function hamburger() {
        document.getElementById("line1").classList.toggle("line_1");
        document.getElementById("line2").classList.toggle("line_2");
        document.getElementById("line3").classList.toggle("line_3");
        document.getElementById("nav").classList.toggle("in");
      };
      document.getElementById("hamburger").addEventListener("click", function() {
        hamburger();
      });
    </script>

css

#nav {
    position: absolute;
    height: 300px;
    width: 40%;
    right: -40%;
    top: 0;
    transition: 0.7s;
  }
  #nav ul {
    list-style: none;
  }
  #nav ul li {
    border-bottom: 1px solid black;
  }
  #nav ul li a {
    color: #000;
  }
  #hamburger {
    position: absolute;
    top: 30px;
    right: -5px;
    width: 45px;
    height: 16px;
    transition: 0.7s;
    cursor: pointer;
  }
  .inner_line {
    display: block;
    position: absolute;
    left: 0;
    width: 20px;
    height: 1px;
    background-color: #000;
    transition: 0.5s;
    border-radius: 4px;
  }
  #line1 {
    top: 0;
  }
  #line2 {
    top: 8px;
  }
  #line3 {
    bottom: 0;
  }
  .in {
    transform: translateX(-100%);
  }
  .line_1, .line_2, .line_3 {
    background-color: #000;
  }
  .line_1 {
    transform: translateY(8px) rotate(-45deg);
    top: 0;
  }
  .line_2 {
    opacity: 0;
  }
  .line_3 {
    transform: translateY(-8px) rotate(45deg);
    bottom: 0;
  }
0 likes

1Answer

  .in {
    transform: translateX(-100%);
  }

これで消えて行ってるんですよね。このコードで意図したことは何ですか?

0Like

Comments

  1. @sachiyo171012

    Questioner

    コメントありがとうございます。
    transform: translateX(-100%);
    こちらですが、画面外にあらかじめ置いておいたリストを、画面内にずらしてるといった形にしています。

    ハンバーガーメニューの作り方がわからず、調べて出てきたものを使用してみたんです、、、

Your answer might help someone💌