메뉴 오버시 서브메뉴가 다 보이게 js 수정

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
메뉴 오버시 서브메뉴가 다 보이게 js 수정

QA

메뉴 오버시 서브메뉴가 다 보이게 js 수정

답변 1

본문

안녕하세요! js를 잘모르는 퍼블리셔입니다.....

지금 홈페이지에 대메뉴에 오버하면 해당되는 메뉴의 서브메뉴만 나타나는데

대메뉴 오버시 전체 메뉴가 나타나게 코드 수정이 가능할까요..? ㅠㅠ

새해 복 많이 받으세요!

 

<html>


<ul class="dropdown">
          <li>
            대메뉴1
                <article>
                    <ul>
                        <li>서브메뉴1</li>
                        <li>서브메뉴2</li>
                        <li>서브메뉴3</li>
                    </ul>
                </article>
          </li>
         <li>
            대메뉴2
                <article>
                    <ul>
                        <li>서브메뉴1</li>
                        <li>서브메뉴2</li>
                        <li>서브메뉴3</li>
                    </ul>
                </article>
          </li>
          <li>
            대메뉴3
                <article>
                    <ul>
                        <li>서브메뉴1</li>
                        <li>서브메뉴2</li>
                        <li>서브메뉴3</li>
                    </ul>
                </article>
          </li>
</ul>

 

<js>


document.querySelectorAll(".has-submenu").forEach((el) => {
  el.addEventListener("mouseenter", (e) => {
    if (window.innerWidth > 1199) {
      // 모든 서브메뉴 비활성화
      document.querySelectorAll(".has-submenu > article").forEach((sub) => {
        sub.classList.remove('active')
      });
      // 현재 서브메뉴 활성화
      el.querySelector("article").classList.add('active')
    }
  });
  el.addEventListener("mouseleave", (e) => {
    if (window.innerWidth > 1199) {
      el.querySelector(".has-submenu > article").classList.remove('active')
    }
  });
});

 

이 질문에 댓글 쓰기 :

답변 1

다음 코드가 도움이 될지 모르겠습니다.

 


<style>
ul.dropdown {
    display: flex;
    padding: 0;
    background-color: #ddd;
}
ul.dropdown li {
    list-style-type: none;
    list-style-position: inside;
    flex: 1;
    padding: 0.4em;
}
ul.dropdown li ul {
    display: none;
}
/*
ul.dropdown li:hover ul {
    display: inherit;
}
*/
ul.dropdown:has(li:hover) ul {
    display: inherit;
}
</style>
<ul class="dropdown">
          <li>
            대메뉴1
                <article>
                    <ul>
                        <li>서브메뉴1</li>
                        <li>서브메뉴2</li>
                        <li>서브메뉴3</li>
                    </ul>
                </article>
          </li>
         <li>
            대메뉴2
                <article>
                    <ul>
                        <li>서브메뉴1</li>
                        <li>서브메뉴2</li>
                        <li>서브메뉴3</li>
                    </ul>
                </article>
          </li>
          <li>
            대메뉴3
                <article>
                    <ul>
                        <li>서브메뉴1</li>
                        <li>서브메뉴2</li>
                        <li>서브메뉴3</li>
                    </ul>
                </article>
          </li>
</ul>
답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 0
© SIRSOFT
현재 페이지 제일 처음으로