@art_y10

Не открываются родительские пункты в мобильном меню. Как открывать родительские пункты?

При клике выпадают подпункты либо сразу переходит на родителскую страницу. Как сделать стрелкиу родительских, чтобы при клике на стрелку появлялись дочерние, а при клике на сам родительский пункт открывалась родительская страница?

<nav class="header__nav">
        <div class="nav__link first">
            <a href="/родительская_страница" class="nav__link"><span class="nav__link__title">Родительский пункт 1</span></a>
          <div class="nav__link__submenu">
            <a href="/подстраница_страница" class="nav__link__submenu__link">Подпункт</a>
            <a href="/подстраница_страница" class="nav__link__submenu__link">Подпункт</a>
	    <a href="/подстраница_страница" class="nav__link__submenu__link">Подпункт</a>
	    <a href="/подстраница_страница" class="nav__link__submenu__link">Подпункт</a>            
          </div>
        </div>
        <div class="nav__link">
            <a href="/родительская_страница2" class="nav__link"><span class="nav__link__title">Родительский пункт 2</span></a>
          <div class="nav__link__submenu">
            <a href="/подстраница_страница" class="nav__link__submenu__link">Подпункт</a>
            <a href="/подстраница_страница" class="nav__link__submenu__link">Подпункт</a>
	    <a href="/подстраница_страница" class="nav__link__submenu__link">Подпункт</a>
	    <a href="/подстраница_страница" class="nav__link__submenu__link">Подпункт</a>			
          </div>
        </div>
        <div class="nav__link">
            <a href="/родительская_страница3" class="nav__link"><span class="nav__link__title">Родительский пункт 3</span></a>
        </div>
          <div class="nav__link">
              <a href="/родительская_страница4" class="nav__link"><span class="nav__link__title">Родительский пункт 4</span></a>
              <div class="nav__link__submenu">
                  <a href="/подстраница_страница" class="nav__link__submenu__link">Подпункт</a>
            	  <a href="/подстраница_страница" class="nav__link__submenu__link">Подпункт</a>				  
              </div>
          </div>
        <div class="nav__link">
            <a href="/родительская_страница5" class="nav__link"><span class="nav__link__title">Родительский пункт 5</span></a>
        </div>
        <div class="nav__link">
            <a href="/родительская_страница6" class="nav__link"><span class="nav__link__title">Родительский пункт 6</span></a>
        </div>        
</nav>

<style>
.header__nav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  position: relative;
  z-index: 0;
  margin: 0 auto;
  padding-right: 15rem; }
  @media (max-width: 992px) {
    .header__nav {
      display: block;
      position: absolute;
      padding-right: 3rem;
      padding-left: 0;
      top: 100%;
      left: -30.1rem;
      background: #fff;
      padding-right: 0;
      margin-top: 0;
      width: 30rem;
      -webkit-transition: all 0.3s ease-out;
      -o-transition: all 0.3s ease-out;
      transition: all 0.3s ease-out;
      border-top: 2px solid rgba(0, 0, 0, 0.1);
      -webkit-box-shadow: 2px 2px 4px -1px rgba(0, 0, 0, 0.15);
      box-shadow: 2px 2px 4px -1px rgba(0, 0, 0, 0.15);
      margin-bottom: 0; } }
  

@media (max-width: 992px) {
  .header__nav.open {
    left: 0; } }

.nav__link {
  display: inline-block;
  float: left;
  height: 9rem;
  position: relative;
  z-index: 3;
  font-size: 1.6rem;
  text-decoration: none;
  color: #272730;
  -webkit-transition: all 0.3s linear;
  -o-transition: all 0.3s linear;
  transition: all 0.3s linear;
  cursor: pointer; }
  @media (max-width: 992px) {
    .nav__link {
      display: block;
      float: none;
      text-align: center;
      height: auto;
      position: static; } }

.nav__link__title {
  font-family: bebas-neue, sans-serif;
  text-trnsform: uppercase;
  font-weight: normal;
  font-style: normal;
  font-stretch: normal;
  letter-spacing: normal;
  color: #003354;
  display: block;
  position: relative;
  padding: 2.5rem 2rem;
  z-index: 1;
  height: 9rem;
  line-height: 4rem;
  margin: 0 -0.1rem;
  -webkit-transition: all 0.3s linear;
  -o-transition: all 0.3s linear;
  transition: all 0.3s linear; }
  @media (max-width: 992px) {
    .nav__link__title {
      padding: 2rem 5rem;
      height: auto;
      line-height: 2rem;
      font-size: 1.8rem;
      border-bottom: 1px solid rgba(0, 0, 0, 0.1); } }
  .nav__link__title:hover, .nav__link__title:active, .nav__link__title:focus {
    color: #f26101; }

.nav__link__submenu {
  position: absolute;
  z-index: 300;
  left: 50%;
  top: 0;
  opacity: 0;
  pointer-events: none;
  -webkit-transition: top 0.3s linear, opacity 0.2s ease-out;
  -o-transition: top 0.3s linear, opacity 0.2s ease-out;
  transition: top 0.3s linear, opacity 0.2s ease-out;
  background: #fff;
  border-radius: 8px;
  -webkit-box-shadow: 0 4px 12px 0 rgba(0, 0, 0, 0.05);
  box-shadow: 0 4px 12px 0 rgba(0, 0, 0, 0.05);
  padding: 0.8rem 3.6rem;
  -webkit-transform: translate(-50%, 0);
  -ms-transform: translate(-50%, 0);
  transform: translate(-50%, 0);
  font-family: bebas-neue, sans-serif;
  text-transform: uppercase;
  font-weight: normal;
  font-style: normal;
  font-stretch: normal;
  letter-spacing: normal;
  text-align: center;
  color: #003354; }
  @media (max-width: 992px) {
    .nav__link__submenu.active {
      height: auto;
      opacity: 1;
      pointer-events: auto; } }
  @media (max-width: 992px) {
    .nav__link__submenu {
      position: static;
      -webkit-box-shadow: none;
      box-shadow: none;
      -webkit-transform: none;
      -ms-transform: none;
      transform: none;
      opacity: 1;
      padding: 0;
      border-bottom: 2px solid rgba(0, 0, 0, 0.1);
      height: 0;
      opacity: 0;
      border-radius: 0; } }
  .nav__link:hover .nav__link__submenu {
    }
    @media (min-width: 970px) {
      .nav__link:hover .nav__link__submenu {
        -webkit-transition: top 0.2s linear, opacity 0.3s ease-in;
        -o-transition: top 0.2s linear, opacity 0.3s ease-in;
        transition: top 0.2s linear, opacity 0.3s ease-in;
        top: 85%;
        opacity: 1;
        pointer-events: auto; } }

.nav__link__submenu__link {
  display: block;
  padding: 0 2.3rem;
  text-decoration: none;
  position: relative;
  height: 5rem;
  z-index: 1;
  color: #003354;
  white-space: nowrap;
  -webkit-transition: all 0.2s linear;
  -o-transition: all 0.2s linear;
  transition: all 0.2s linear;
  line-height: 5.5rem;
  text-align: center;
  cursor: pointer; }
  .nav__link__submenu__link:active, .nav__link__submenu__link:hover, .nav__link__submenu__link:focus {
    color: #f26101; }


.nav__link__submenu:after {
  content: '';
  display: block;
  height: 1.6rem;
  width: 1.6rem;
  background: #fff;
  -webkit-box-shadow: -2px -2px 4px -1px rgba(0, 0, 0, 0.05);
  box-shadow: -2px -2px 4px -1px rgba(0, 0, 0, 0.05);
  position: absolute;
  top: 2px;
  left: 50%;
  -webkit-transform: translate(-50%, -50%) rotate(45deg);
  -ms-transform: translate(-50%, -50%) rotate(45deg);
  transform: translate(-50%, -50%) rotate(45deg);
  z-index: 2; }
  @media (max-width: 992px) {
    .nav__link__submenu:after {
      display: none !important; } }
<style>

<script type="text/javascript">
  $(document).ready(function() {
    is_mobile_menu_set = !1, isTouch() && $(".nav__link__submenu").parent().find("a.nav__link").click(function(e) {
        e.preventDefault()
    }), handleFormCaptions(), handleStyledSelect();
    var e = $(".header").height();
    $(window).resize(function() {
        e = $(".header").height(), handleWideTallImages(), $(".page__header").removeAttr("style"), page_header_h = $(".page__header").height(), $(".header").removeClass("scrolled"), isMobile() && handleMobileMenu()
    }), $(window).scroll(function() {
        isMobile() || ($(window).scrollTop() > e ? $(".header").addClass("scrolled") : $(".header").removeClass("scrolled"))
    }), ($(".page__header").hasClass("l1") || $(".page__header").hasClass("l2")) && ($(".page__header__img").height($(".page__header__img").height()), $(window).scroll(function() {
        $(".page__header").height(page_header_h - $(window).scrollTop())
    })), $(".page__content").first().prepend('<div class="page__content__bottom-lines"></div>'), $(window).resize(), $(".js-show-popup").click(function(e) {
        e.preventDefault(), $("#" + $(this).data("popup")).fadeIn(), $("body").addClass("overlayered")
    }), $(".js-close-popup").click(function(e) {
        e.preventDefault(), $("#" + $(this).data("popup")).fadeOut(), $("body").removeClass("overlayered")
    })
  });
</script>
  • Вопрос задан
  • 73 просмотра
Решения вопроса 1
OTCloud
@OTCloud
Программирование и Архитектура ПО
JavaScript-ом проверяем есть ли у текущего пункта меню подпункты, если да, то рядом с текущим пунктом вставляем кнопку с определенным классом, на который вешаем обработчик события раскрытия контейнера с дочерними подпунктами.

Писать готовое решение никто не будет.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы