탭메뉴 만들기

하리보좋아·2023년 8월 18일
0

탭메뉴 마우스가 메뉴에 올때 탭메뉴가 아래에 추가되는걸 만드려고한다,,

먼저 html,

<div class="menu-content">
      <ul class="menu-area">
        <li>
          <a class="menu-title" href="">A메뉴</a>
          <div class="bottom-area">
            <ul class="depth-menu">
              <li><a href="">A메뉴의1</a></li>
              <li><a href="">A메뉴의2</a></li>
              <li><a href="">A메뉴의3</a></li>
            </ul>
          </div>
        </li>
        <li>
          <a class="menu-title" href="">B메뉴</a>
          <div class="bottom-area">
            <ul class="depth-menu">
              <li><a href="">B메뉴의1</a></li>
              <li><a href="">B메뉴의2</a></li>
              <li><a href="">B메뉴의3</a></li>
            </ul>
          </div>
        </li>
        <li>
          <a class="menu-title" href="">C메뉴</a>
          <div class="bottom-area">
            <ul class="depth-menu">
              <li><a href="">C메뉴의1</a></li>
              <li><a href="">C메뉴의2</a></li>
              <li><a href="">C메뉴의3</a></li>
            </ul>
          </div>
        </li>
        <li>
          <a class="menu-title" href="">D메뉴</a>
          <div class="bottom-area">
            <ul class="depth-menu">
              <li><a href="">D메뉴의1</a></li>
              <li><a href="">D메뉴의2</a></li>
              <li><a href="">D메뉴의3</a></li>
            </ul>
          </div>
        </li>
        <li>
          <a class="menu-title" href="">E메뉴</a>
          <div class="bottom-area">
            <ul class="depth-menu">
              <li><a href="">E메뉴의1</a></li>
              <li><a href="">E메뉴의2</a></li>
              <li><a href="">E메뉴의3</a></li>
            </ul>
          </div>
        </li>
      </ul>
    </div>

css,

      .menu-content {
        padding: 3rem;
      }
      .menu-content .menu-area {
        display: flex;
        justify-content: space-between;
        align-items: center;
      }
      .menu-content .menu-area li {
        text-align: center;
        position: relative;
      }
      .menu-content .menu-area li .menu-title {
        font-size: 14px;
      }
      .menu-content .menu-area li .menu-title + .bottom-area {
        position: absolute;
        top: 100%;
        left: 50%;
        transform: translateX(-50%);
        background-color: #000;
        color: #fff;
        padding: 5px;
        white-space: nowrap;
        width: auto;
        display: none;
      }
      .menu-area > li.is_active .menu-title + .bottom-area {
        display: block;
      }

각 메뉴밑에 탭메뉴가 추가되도록 만들었다.

bottom-area에 display:none; 을

const tabmenu = document.querySelectorAll(".menu-area > li");
      console.log(tabmenu.length);
      for (let i = 0; i < tabmenu.length; i++) {
        tabmenu[i].addEventListener("mouseover", () => {
          tabmenu[i].classList.add("is_active");
        });
        tabmenu[i].addEventListener("mouseout", () => {
          tabmenu[i].classList.remove("is_active");
        });
      }

1개의 댓글

comment-user-thumbnail
2023년 8월 18일

글 재미있게 봤습니다.

답글 달기