Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在调整大小时隐藏元素?_Javascript_Html_Css_Sass - Fatal编程技术网

Javascript 如何在调整大小时隐藏元素?

Javascript 如何在调整大小时隐藏元素?,javascript,html,css,sass,Javascript,Html,Css,Sass,当用户调整屏幕大小超过某个点(767px)时,我试图隐藏移动导航菜单。我认为这将是相当直接的,但我不能让它工作。有什么建议吗? ps My Constraint Nav函数正在body标记中调用(未显示) 我认为这应该是足够的代码。我可以提供更多。谢谢 使用css媒体查询,在这种情况下,您不需要javascript @媒体屏幕和(最小宽度:767px){ .导航{ 显示:无 } } 使用css媒体查询,在这种情况下,您不需要javascript @媒体屏幕和(最小宽度:767px){ .导航{

当用户调整屏幕大小超过某个点(767px)时,我试图隐藏移动导航菜单。我认为这将是相当直接的,但我不能让它工作。有什么建议吗? ps My Constraint Nav函数正在body标记中调用(未显示)


我认为这应该是足够的代码。我可以提供更多。谢谢

使用css媒体查询,在这种情况下,您不需要javascript

@媒体屏幕和(最小宽度:767px){
.导航{
显示:无
}
}

使用css媒体查询,在这种情况下,您不需要javascript

@媒体屏幕和(最小宽度:767px){
.导航{
显示:无
}
}
// Toggle between hamburger and full mobile menu //

const nav = document.getElementById("mobile-nav");
const hamburger = document.getElementById("hamburger");
const width = window.innerWidth;

function navToggle() {
  if (nav.style.display === "") {
    nav.style.display = "block";
  } else {
    nav.style.display = "";
  }
}

// Keep mobile-nav visible only when 767px or less

function constrainNav() {
  if (nav && width > 767) {
    nav.style.display = "none";
  }
}
<nav class="nav">
        <div id="navbar" class="nav__navbar"">
            <div class="nav__left">
                <a href="#"><img src="src/assets/img/Grieve-logo.png" class="nav__img" alt="grieve logo"></a>
            </div>
            <div class="nav__right">
                <ul class="nav__list">
                    <li class="nav__list-item"><a class="nav__list__link" href="#">Wines</a></li>
                    <li class="nav__list-item"><a class="nav__list__link" href="#">Vineyard</a></li>
                    <li class="nav__list-item"><a class="nav__list__link" href="#">About</a></li>
                    <li class="nav__list-item"><a class="nav__list__link" href="#">Winemaker</a></li>
                    <li class="nav__list-item"><a class="nav__list__link" href="#">Visit</a></li>
                    <li class="nav__list-item"><a class="nav__list__link" href="#">Buy</a></li>
                </ul>
                <a href="#" class="nav__hamburger" onClick="navToggle();"><i class="fa fa-bars"></i></a>
            </div>
            <div class="nav__navbar nav__navbar--mobile" id="mobile-nav">
                <div class="nav__left nav__left--mobile">
                    <img src="src/assets/img/XXXXXX-logo.png" class="nav__img" alt="XXXXX logo">
                    <a href="#" class="nav__hamburger" onClick="navToggle();"><i class="fa fa-bars"></i></a>
                </div>
                <ul class="nav__list--mobile">
                    <li class="nav__list__item--mobile"><a class="nav__list__link--mobile" href="#">Wines</a></li>
                    <li class="nav__list__item--mobile"><a class="nav__list__link--mobile" href="#">Vineyard</a></li>
                    <li class="nav__list__item--mobile"><a class="nav__list__link--mobile" href="#">About</a></li>
                    <li class="nav__list__item--mobile"><a class="nav__list__link--mobile" href="#">Winemaker</a></li>
                    <li class="nav__list__item--mobile"><a class="nav__list__link--mobile" href="#">Visit</a></li>
                    <li class="nav__list__item--mobile"><a class="nav__list__link--mobile" href="#">Buy</a></li>
                </ul>
            </div>
        </div>
    </nav>
.nav {
  position: sticky; // * curious to see how this works once we get to browser testing.
  top: 0;
  margin-top: -3px; // * necessary maybe?  Not sure how to get rid of that small gap above the nav.
  height: 100%;

  &__navbar {
    width: 100%;
    overflow: hidden;
    height: 3rem;
    background-color: $colorPrimary;
    display: flex;
    justify-content: space-between;
    padding: 0 1.5rem;
    align-items: center;

    &--mobile {
      display: none;
      position: absolute;
      top: -17.625rem;
      left: 0;
      background-color: $colorSecondary;
      max-width: 100%;
      height: auto;
    }
  }

  &__left {
    color: $colorWhite;
    margin: 0.75rem 0 0 0;

    &--mobile {
      display: flex;
      justify-content: space-between;
    }
  }

  &__img {
    width: 5.625rem;
  }

  &__right {
    margin: 0;
  }

  &__hamburger {
    display: none;
    color: $colorWhite;
    margin: 0;

    @include respond(med) {
      display: block;
    }
  }

  &__list {
    list-style: none;
    display: flex;
    text-transform: uppercase;
    justify-content: center;

    @include respond(med) {
      display: none;
    }

    &--mobile {
      display: flex;
      flex-direction: column;
      list-style: none;
      padding: 8rem 0;
      align-items: center;
    }

    &__link {
      text-decoration: none;
      color: $colorWhite;
      cursor: pointer;
      text-transform: uppercase;
      font-size: 1rem;
      margin: 0 1rem;

      @media (max-width: 40.625rem) {
        margin: 0 0.5rem;
      }

      &--mobile {
        text-decoration: none;
        color: $colorWhite;
        cursor: pointer;
        text-transform: uppercase;
        font-size: 1rem;
        margin: 0 1rem;

        @include respond(med) {
          font-size: 2rem;
        }
      }
    }

    &__item {
      &--mobile {
        padding: 2rem;
      }
    }
  }
}