当前位置: 首页 > 知识库问答 >
问题:

在较大屏幕尺寸上删除汉堡菜单

宫俊才
2023-03-14

我已经为我的网站创建了一个汉堡包菜单,我希望它在更大的屏幕尺寸下完全消失。我希望在更大的屏幕尺寸下删除.在我的所有导航元素上显示的类。当我在更大的屏幕尺寸下运行时,我的汉堡包菜单保持打开。我不知道这个问题的解决方案是否简单,但我是一个在js的大块头,我不知道如何解决它。[小汉堡菜单][1]

null

// Select DOM Items
const menuBtn = document.querySelector('.menu-btn');
const menu = document.querySelector('.nav-menu');
const menuNav = document.querySelector('.nav-ul');
const navItems = document.querySelectorAll('.nav-item');

// Seti Initial State Of Menu
 let showMenu = false;  

menuBtn.addEventListener('click', toggleMenu);

function toggleMenu() {
    if(!showMenu) {
menuBtn.classList.add('close');
menu.classList.add('show');
menuNav.classList.add('show');
navItems.forEach(item => item.classList.add('show'));


// Set menu state
showMenu = true;
    } else {
        menuBtn.classList.remove('close');
        menu.classList.remove('show');
        menuNav.classList.remove('show');
        navItems.forEach(item => item.classList.remove('show'));
        
        // Set Menu State
        showMenu = false;
    }
}
.nav-logo-wrapper {
  .menu-btn {
    position: absolute;
    position: fixed;
    z-index: 3;
    right: 35px;
    top: 100px;
    cursor: pointer;
    @include easeOut;

    .btn-line {
      width: 28px;
      height: 3px;
      margin: 0 0 5px 0;
      background: white;
      @include easeOut;
    }
    //   Rotate Into X With Menu Lines
    &.close {
      -webkit-transform: rotate(180deg);
      -moz-transform: rotate(180deg);
      -o-transform: rotate(180deg);
      -ms-transform: rotate(180deg);
      transform: translate(180deg);

      .btn-line {
        // Line 1 - Rotate
        &:nth-child(1) {
          transform: rotate(45deg) translate(5px, 5px);
        }
        // Line 2 - Hide
        &:nth-child(2) {
          opacity: 0;
        }
        // Line 3 - Rotate

        &:nth-child(3) {
          transform: rotate(-45deg) translate(6.5px, -6.5px);
        }
      }
    }
  }
}
<!-- navigation mobile menu -->
    <nav class="nav-menu animate__animated animate__fadeInRight">
        <ul class="nav-ul">
            <li class="nav-item">
            <a class="nav-link  current" href="index.html">
                Home
            </a>
        </li>
        <li class="nav-item">
            <a class="nav-link"  href="products.html">
        Products
            </a>
        </li>
         <li  class="nav-item">
             <a class="nav-link" href="#features">
                 About us
             </a>
         </li>
         
         <li  class="nav-item"><a class="nav-link" href="">
        Pricing
         </a></li>
        </ul>
        </nav>

null

共有1个答案

卫泉
2023-03-14

您是否考虑过为此使用CSS媒体查询而不是JavaScript?

null

.small {
  display: block;
}
.large {
  display: none;
}

@media only screen 
and (min-width : 500px)  {
  .small {
    display: none;
  }
  .large {
    display: block;
  }
}
<div class="small">Small/medium browser width only</div>
<div class="large">Larger browser width only</div>
 类似资料:
  • 问题内容: 嗨,我正在编写图形程序,我一直在寻找一种获取所使用屏幕物理尺寸的方法。我可以获得以像素为单位的屏幕大小以及逻辑分辨率。我似乎找不到任何地方可以获取任何显示器规格中始终具有的物理尺寸(例如19“-376 x 301 mm)。问题是,加载此信息时,此信息是否甚至还存储在OS中的任何位置?我正在编写的程序需要在Mac和Windows上运行。 谢谢! nt 问题答案: 我认为Java不可能实现

  • 问题内容: 我已经仔细阅读了http://developer.android.com/guide/practices/screens_support.html和其他相关网站中的文档,但我仍然对此表示怀疑。让我解释: 我已经为值,values-large和values- xlarge实现了dimens.xml,因此,例如,在平板电脑上运行时,我的Android应用程序很好。但是,我指定了填充,边距,

  • 我最初使用的是setSize,但由于java边框和标题空间的原因,这导致屏幕上的内容比屏幕稍大。所以我使用了setpreferredSize,现在屏幕尺寸有点太大了。在我的内容的右侧和底部留出空间。 在我的框架中: 在我的董事会(JPanel)

  • 问题内容: 无论屏幕大小如何,我都想使用Swift代码在我的应用程序中正确定位项目。例如,如果我希望按钮的宽度为屏幕宽度的75%,则可以做为按钮的宽度。我发现可以通过在Objective-C中确定 不幸的是,我不确定如何将其转换为Swift。有人有主意吗? 谢谢! 问题答案: 在Swift 3.0中 快点做:做这样的事情: 那么您可以像这样访问宽度和高度: 如果您想要屏幕宽度的75%,则可以执行以

  • 问题内容: 我在页面上有以下布局: 但是在较小的屏幕尺寸上,我需要以下布局: (请注意列顺序的重新安排。)是否可以仅在较小的屏幕尺寸上推/拉列?我已经尝试了以下方法,但是我得到的布局最奇怪,并且似乎完全丢失了…: 问题答案: 我自己回答,只需思考:移动优先! 按照我想要在平板电脑上的顺序获取它们,然后将它们推入/拉入到桌面上。

  • 问题内容: 我目前正在尝试设计一种可以兼容多种屏幕尺寸的布局。我正在设计的屏幕尺寸如下: 屏幕尺寸: 640x480 800x600 1024x768 1280x1024(及更大) 我遇到的麻烦是创建css3媒体查询,以便当窗口的宽度变为这些宽度之一时,布局会发生变化。以下是我当前正在使用的媒体查询的示例,但不适用于我,因此我想知道是否有人可以帮助我修复它。 我尝试使用一组新的媒体查询,但是它们仍