2017-06-17 16 views
0

私は、単一のページレイアウトとモバイルの最初のアプローチでレスポンシブなウェブサイトを構築しています。まあ、少なくとも私は試みているが、メニューは最初から苦労している。レスポンシブ(モバイルファーストアプローチ)用のJavaScriptドロップダウンメニュー/水平メニュー

完成した結果をどのようにして調整したかのようなメニュースニペットを検索しましたが、これまでのところ失敗しただけです。私は非常に多くの異なるコードを試しましたが、これは私が現在持っているものです。なぜこれがうまくいかないのか理解できますが、それ以上のアイデアはありません。私は本当に助けが必要です。クリックされたとき

  • ドロップダウン "点滅" は/直接スライドアップ:それは今(時々)はどのような

    $(function() { 
     
         var handleMatchMedia = function(md) { 
     
          if (md.matches) { 
     
          // window width is at least 840px 
     
           $(".nav-toggle").click(function() { 
     
           $(this).next("div").slideToggle(250); 
     
           }); 
     
          } else { 
     
          // window width is less than 840px 
     
           $(".nav-toggle").click(function() { 
     
           $(this).parent().siblings().children().next().slideUp(250); 
     
           $(this).next("div").delay(360).slideToggle(250); 
     
           }); 
     
          } 
     
         }; 
     
         var mq = window.matchMedia("(min-width: 840px)"); 
     
    
     
         handleMatchMedia(mq); 
     
         mq.addListener(handleMatchMedia); 
     
         });
    header { 
     
        background-color: #171717; 
     
        top: 0; 
     
        position: fixed; 
     
        width: 100%; 
     
        color: #ffffff; 
     
        text-transform: uppercase; 
     
        list-style-type: none; 
     
        letter-spacing: 1px; 
     
        z-index: 2; } 
     
        header a { 
     
        text-decoration: none; 
     
        color: #9e9ea1; } 
     
        header a:hover { 
     
        border-bottom: 2px solid #ffffff; 
     
        color: #ffffff; 
     
        padding-bottom: calc(1.5rem/6); 
     
        padding-bottom: 0.25rem; } 
     
        header ::-moz-selection { 
     
        background-color: #ffffff; 
     
        color: #171717; } 
     
        header ::selection { 
     
        background-color: #ffffff; 
     
        color: #171717; } 
     
    
     
    #nav-container { 
     
        margin: 0 auto; 
     
        max-width: calc((1.5rem*2*12) + (1.5rem*11)); 
     
        padding: calc(1.5rem/2) 1.5rem; 
     
        height: calc(1.5rem*2); } 
     
    
     
    .navigation .nav-toggle span { 
     
        cursor: pointer; } 
     
    
     
    .navigation .nav-list { 
     
        display: none; } 
     
        .navigation .nav-list ul { 
     
        text-align: center; 
     
        padding: calc(1.5rem/2) 0 1.5rem; 
     
        top: calc(1.5rem*2); 
     
        left: 0; 
     
        right: 0; 
     
        margin: 0 auto; 
     
        position: absolute; 
     
        background-color: #171717; } 
     
        .navigation .nav-list ul li { 
     
         padding: calc(1.5rem/2) 0; 
     
         display: block; } 
     
    
     
    .navigation .nav-main { 
     
        width: 66.66667%; 
     
        float: left; } 
     
    
     
    @media all and (min-width: 940px) { 
     
        .nav-main .nav-toggle { 
     
        display: none; } 
     
        .nav-main .nav-list { 
     
        display: block; } 
     
        .nav-main .nav-list ul { 
     
         position: static; 
     
         padding: 0; } 
     
         .nav-main .nav-list ul li { 
     
         display: inline-block; 
     
         padding: 0 calc(1.5rem/2); } 
     
         .nav-main .nav-list ul li:first-child { 
     
          padding-left: 0; } 
     
         .nav-main .nav-list ul li:last-child { 
     
          padding-right: 0; } 
     
        .nav-main .active { 
     
        border-bottom: 2px solid #ffffff; 
     
        color: #ffffff; 
     
        padding-bottom: calc(1.5rem/6); 
     
        padding-bottom: 0.25rem; } }
    <header> 
     
        <div id="nav-container"> 
     
        <div class="brand"> 
     
         <a href="#"><span><span>B</span>rand</span> Name</a> 
     
        </div> 
     
        <div class="navigation"> 
     
         <nav class="nav-main left"> 
     
         <div class="nav-toggle text-center"> 
     
          <span>Menu</span> 
     
         </div> 
     
         <div class="nav-list"> 
     
          <ul> 
     
          <li> 
     
           <a class="active" href="#home">Home</a> 
     
          </li> 
     
          <li> 
     
           <a href="#bio">Bio</a> 
     
          </li> 
     
          <li> 
     
           <a href="#portfolio">Portfolio</a> 
     
          </li> 
     
          <li> 
     
           <a href="#contact">Contact</a> 
     
          </li> 
     
          </ul> 
     
         </div> 
     
         </nav> 
     
        </div> 
     
        </div> 
     
    </header>

  • メニュー項目が常に大きな画面に表示されるとは限りません。
  • 私はそれを行うことを望む何

  • は標準しかし 大きな画面上の水平方向のメニューへの変更など(閉鎖)ドロップダウンう。
  • ユーザーが 'a'ジャンプリンク、メニュー の外側、または「メニューボタン」の上をクリックすると、ドロップダウンが閉じます。

私はJavaScriptに新たなんだ、そう正確にどのようにして場所を記入してください(及び好ましくはまた、なぜ、私は:)学びたい)事前に

ありがとう!

EDIT 1
< HREFを変更= "#バイオ" ターゲット= "ブランク">バイオ</A>から<のhref = "#バイオ">バイオ</A>

+0

あなたの目標がプロの製品を生産することであれば、あなたはブートストラップを考慮する必要があります。 – user2182349

+0

@ user2182349私はブートストラップを一度も使用していないので、私は次のプロジェクト(これはほぼ完成しています)を見直さなければなりません。ヒントありがとう! :) – CutePixel

答えて

関連する問題