Мой триггер JavaScript не работает в моем коде с медиа-запросом CSS - PullRequest
0 голосов
/ 06 июня 2019

Я создаю веб-проект. Я хочу включить скрытие шоу в JavaScript.

<nav id="navbar" class="sticky">
    <div id="logo"><a href="Javascript: xs();" class="lounch" id="xs">&#9776;</a><a href="Javascript: sm();" class="lounch" id="sm">&#9776;</a><a href="index"><img src="./logo/logo.png" alt=""></a></div>
    <div class="links">
      <div class="link ac"><a href="index" class="active">index</a></div>
      <div class="link"><a href="Javascript: alrt();">about</a></div>
      <div class="link"><a href="Javascript: alrt();">explore</a></div>
      <div class="link"><a href="Javascript: alrt();">article</a></div>
      <div class="link"><a href="Javascript: alrt();">contact</a></div>
    </div>
    <div class="connect">
      <a href="signin">sign in</a>
      <a href="signup">sign up</a>
    </div>
  </nav>  

Это моя кнопка триггера.

<div id="logo"><a href="Javascript: xs();" class="lounch" id="xs">&#9776;</a><a href="Javascript: sm();" class="lounch" id="sm">&#9776;</a><a href="index"><img src="./logo/logo.png" alt=""></a></div>

Это триггер для маленького экрана. Я хочу скрыть / показать .links при нажатии #xs.

Scss код .links

.links{
    display: flex;
    align-items: center;
    margin: auto;
    .link{
      margin: 10px;
      align-items: center;
      a{
        text-transform: uppercase;
        padding: 7px;
        border: 2px solid;
      }
      a.active,a:hover{
        color: $bd;
        background: $lgd;
      }
      a.active:hover{
        color: $lgl;
        background: none;
      }
    }
  }
@media screen and (max-width: 700px){
 .links{
      display: block;
      text-align: center;
      margin: 0;
      margin-top: -18px;
      padding-top: 3px;
      border-bottom: 2px solid;
      border-right:  2px solid;
      width: 170px;
      .link{
        padding: 6px 20px;
        align-items: center;
        border-bottom: 1px solid;
        margin: auto;
        a.active:hover,a:hover,a.active,a{
          text-transform: uppercase;
          padding: 6px 60px 6px 10px;
          margin: auto;
          border: 2px solid;
          color: $lgd;
          background: none;
          border:none;
        }
      }
      .ac{
        background: $lgd;
        a.active:hover,a:hover,a.active,a{
           background: none;
           color: $bd;
        }
      }
      .link:last-child{
        border-bottom: 0;
      }
    }
}

мой javascript код

document.getElementById('xs').addEventListener('click', function() {
  let val = document.getElementByClassName('content').style.display == 'block' ? 'none' : 'block';
  document.getElementById('content').style.display = val;
});
document.getElementById('sm').addEventListener('click', function() {
  let val = document.getElementByClassName('content').style.display == 'block' ? 'none' : 'block';
  document.getElementById('content').style.display = val;
  let vals = document.getElementByClassName('connect').style.display == 'block' ? 'none' : 'block';
  document.getElementById('connect').style.display = vals;
});

Я хочу, чтобы триггер показывал / скрывал .links

Ответы [ 2 ]

0 голосов
/ 06 июня 2019

См. Ниже фрагмент

таким образом вы можете использовать функцию toggleClass для переключения класса css

Надеюсь, это поможет.

$(document).ready(function(){
  $("button").click(function(){
      $(".target").toggleClass('hide');
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!DOCTYPE html>
<html>
<head>

<style>
.hide{
display:none;
}
</style>
 
</head>
<body>

<h2>Click Below Button to see how toggle works</h2>

<p class="target hide">I am here to hide  with toggle.</p> 

<button>Click me to toggle class</button>

</body>
</html>
0 голосов
/ 06 июня 2019

Вот очень простой пример переключения видимости в представлении.

document.getElementById('toggle').addEventListener('click', function() {
  let val = document.getElementById('content').style.display == 'block' ? 'none' : 'block';
  document.getElementById('content').style.display = val;
})
<button id="toggle">Click me</button>
<div id="content" style="display: block">This div can be hidden</div>
...