2017-10-25 11 views
0

興味深いことに、2つのソリューションが掲載されていますが、これはおそらく私が書いたCSSですが、ハンバーガーボタンを押してもリンクが表示されません。また、.nav .openが有効になっていない場合、背景色は画面の大部分を占めています。jQueryで複数のイベントをグループ化する

________________CSSは次のとおりです。

@media screen and (min-width: 320px) and (max-width: 768px) { 
    .navigation { 
     flex-direction: row; 
     justify-content: center; 
     align-items: center; 
     padding-top: .75rem; 
     flex-wrap: wrap; 
    } 
    .navigation:nth-child(3) { 
     flex-direction: column; 
    } 
    .nav { 
     flex-direction: column; 
     visibility: hidden; 
    } 
    .nav a { 
     align-items: center; 
     justify-content: space-around; 
     padding: .5rem; 
    } 
    .nav a:first-child { 
     padding-top: 1rem; 
    } 
    .fa-bars { 
     visibility: visible; 
    } 
    .onav { 
     margin-left: 2.5rem; 
    } 
} 

.header { 
    background: #252525; 
    min-width: 100%; 
    min-height: 1.75rem; 
} 

.container { 
    max-width: 80%; 
    margin: 0 auto; 
} 

.navigation { 
    display: flex; 
} 

.logo { 
    max-width: 100%; 
    min-width: 236px; 
    max-height: 24px; 
} 

.nav { 
    display: flex; 
} 

.open { 
    height: auto; 
    visibility: visible; 
} 

.nav a { 
    display: flex; 
    list-style: none; 
    color: #fff; 
    margin: 0; 
    line-height: 2.5rem; 
    text-decoration: none; 
} 

.fa { 
    display: inline-block; 
    font-family: FontAwesome; 
    font-style: normal; 
    font-weight: normal; 
    line-height: 1; 
    -webkit-font-smoothing: antialiased; 
    color: #fff; 
} 

.onav { 
    border: 0; 
    background-color: transparent; 
} 

button:focus { 
    outline: 0; 
} 

________________ORG POST:

こんにちは - クリックされた2つのことが発生したとき、ナビゲーションシェード(slideToggle)を滑り落ち、およびナビゲーションリンクが表示されるように、このナビゲーションを設定しようとしています(toggleClass)を一度に実行します。リンクをクリックすると、ナビゲーションシェードが元に戻り、クラスが削除されます。それが正しい方法であるかどうか確かめてください。以下のjQueryが正しいものではないことを認識して、誰かがこれを実行する適切な方法について私を導くことができますか?

- おかげ

<head> 
    <meta charset="utf-8"> 
    <meta lang="eng"> 
    <meta name description=""> 
    <meta name title=""> 
    <title></title> 
    <!-- MOBILE META --> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <!-- CSS --> 
    <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400i,500,700" rel="stylesheet"> 
    <link rel="stylesheet" href="css/normalize.css"> 
    <link rel="stylesheet" href="css/test_styles.css"> 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css"> 
</head> 
<body> 
<div class="header"> 
    <div class="container"> 
     <div class="navigation"> 
      <img class="logo" src="img/logo.png" alt="name" style="font-size:24px; text-transform:uppercase; letter-spacing:2px;" /> 
      <button id="trigger-overlay" type="button" class="onav"><i class="fa fa-bars" aria-hidden="true"></i></button> 
      <div class="nav"> 
       <a href="">link 1</a> 
       <a href="">link 2</a> 
       <a href="">link 3</a> 
       <a href="">link 4</a> 
       <a href="">link 5</a> 
       <a href="">link 6</a> 
       <a href="">link 7</a> 
       <a href="">link 8</a> 
       <a href="">link 9</a> 
       <a href="">link 10</a> 
      </div> 
     </div> 
    </div> 
</div> 
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#trigger-overlay").on("click", function() { 
      $(".nav").toggleClass("open").slideToggle("slow"); 
     }); 
     $('.nav a').click(function() { 
      $(this).slideUp(); 
     }); 
    }); 
</script> 
</body> 

答えて

0

は、単にナビゲーションボタンまたはリンクのいずれかをクリックすると、同じコードが実行される可能。

ここ

$(".nav").toggleClass("open").slideToggle("slow"); 

$(this).slideUp(); 

を交換するには、完全なコードは

$(document).ready(function() { 
 
     $("#trigger-overlay").on("click", function() { 
 
      $(".nav").toggleClass("open").slideToggle("slow"); 
 
     }); 
 
     $('.nav a').click(function() { 
 
      $(".nav").toggleClass("open").slideToggle("slow"); 
 
     }); 
 
    });
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
 
<div class="header"> 
 
    <div class="container"> 
 
     <div class="navigation"> 
 
      <img class="logo" src="img/logo.png" alt="name" style="font-size:24px; text-transform:uppercase; letter-spacing:2px;" /> 
 
      <button id="trigger-overlay" type="button" class="onav"><i class="fa fa-bars" aria-hidden="true"></i></button> 
 
      <div class="nav"> 
 
       <a href="#">link 1</a> 
 
       <a href="#">link 2</a> 
 
       <a href="#">link 3</a> 
 
       <a href="#">link 4</a> 
 
       <a href="#">link 5</a> 
 
       <a href="#">link 6</a> 
 
       <a href="#">link 7</a> 
 
       <a href="#">link 8</a> 
 
       <a href="#">link 9</a> 
 
       <a href="#">link 10</a> 
 
      </div> 
 
     </div> 
 
    </div> 
 
</div>

です
関連する問題