切换(重置)汉堡,删除(重置)菜单,全部来自子菜单链接.on(点击)(点按)

时间:2018-03-14 05:38:27

标签: jquery css submenu

我一直在喝“firehose”,我可能只是一个简单的问题。我有一个ul菜单,使用jquery .addClass更改为移动滑块菜单。在800px时,桌面菜单消失,出现菜单“汉堡”。单击/点击时,汉堡从左侧切换滑块菜单。这一切都正常,但单击锚标签上的子菜单链接会使菜单保持原位,重叠内容。必须再次点击/点击汉堡,使菜单退出窗口。

我正在寻找一个解决方案,在子菜单lia(锚标记)点击事件期间基本上切换/重置汉堡,删除菜单,同时仍然允许它在同一页面上再次使用(对于其他锚点) )。

到目前为止,我的解决方案已经删除了单击菜单,但未能允许再次使用/查看该特定子菜单。此外,汉堡不会切换到原来的设置。另一个当前的实验删除了菜单,离开了悬停,并没有切换汉堡,因此它与滑块不同步。任何建议都非常感谢!

P.S。锚标签位于“CUSTOMIZE”链接下。 “myFunction”脚本切换“汉堡”

链接到查看测试页面: http://www.cardscreative.com/cc2017/test2.html

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">

<title>Cards Creative - Telling stories. Beautifully.</title>

<link rel="stylesheet" type="text/css" href="css/reset.css">
<link rel='stylesheet' type='text/css' href="test2.css">
<link rel='stylesheet' type='text/css' href="css/fixedsticky.css">

<link href='https://fonts.googleapis.com/css?family=Raleway:100,400,600,700,800|Cormorant+Garamond:400,500' rel='stylesheet'>

    <script> function myFunction(x) {
      x.classList.toggle("change");   }
    </script> 

</head>

<body>
<!--- Begin Nav & Burger Menu --->
    <input  id="menuToggle" type="checkbox" />
      <label for="menuToggle">
        <div id="burger"  onclick="myFunction(this)">
          <div class="bar1"></div>
          <div class="bar2"><p>MENU</p></div>
          <div class="bar3"></div>
        </div>
      </label>


<!--- Slide/Nav Mobile --->    
    <div class='nav'>
        <ul>
            <li><a href='#'>HOME</a></li>
            <li><a href='#'>CUSTOMIZE <span style="font-family:Arial Black;">&#x25BA;</span></a>
              <ul>
                 <li><a href='#top'>Design Options</a></li>
                 <li><a href='#colors'>Colors</a></li>
                 <li><a href='#fonts'>Fonts</a></li>
                 <li><a href='#compare'>Font Comparison</a></li>
                </ul>
            </li>   

        </ul>
    </div> 

    <script src="js/jquery-3.3.1.js" type="text/javascript"></script>
  <script src="js/cardsCreative.js" type="text/javascript"></script>
  </body>
</html>

相关CSS:

#menuToggle {
    display: none;
}

#menuToggle:checked ~ .mobile {
    position: fixed; left: 0; top:0;
}

@media screen and (max-width: 801px) {
  #burger { visibility:hidden;}
    .nav {display:block;}
  }

@media screen and (max-width: 800px) {
  #burger { visibility: visible;}
  .nav {display:none;}

相关的Jquery:

$(document).ready(function() {
    $(window).resize(function() {
    var viewportWidth = $(window).width();
    if (viewportWidth < 800) {
        $('.nav').removeClass('nav').addClass('mobile');
    }
    if (viewportWidth > 800) {
        $('.mobile').removeClass('mobile').addClass('nav');
    }
    });
});

$(document).ready(function() {
    $('#burger').on('click', function() {
        $('.nav').removeClass('nav').addClass('mobile');
    });
});



$(document).ready(function() {
    $('.nav').children('ul').find('ul').on('click', function(){
        $('input[type=checkbox]').trigger('click');
        $('myFunction').toggle(); 
    });

});

0 个答案:

没有答案