【问题标题】:Unable to find code that hides left menu on smaller screens无法找到在较小屏幕上隐藏左侧菜单的代码
【发布时间】:2017-10-31 01:00:17
【问题描述】:

我被要求更新我们网站 whesearchreporting.com 的左侧导航菜单(如果您想访问该网站,您可以输入任何用户名和密码。网站仍处于测试模式)。目前,导航菜单在全宽屏幕上可见,但如果将屏幕宽度减小到大约 900 像素),菜单会消失,但可以通过左上角的菜单切换图标展开。但是,他们现在想将此逻辑更改为以下内容,而我在弄清楚如何修复时遇到了问题:

  • 在全屏时,左上角看不到菜单切换按钮。菜单始终保持打开状态
  • 在小屏幕或移动屏幕上,菜单切换按钮变为可见。

所以基本上,我需要找到处理使左侧导航菜单在屏幕尺寸减小到大约 950 像素时消失的代码,并将相同的逻辑应用于左上角的菜单切换图标。这是在引导程序中处理的吗?

如果有帮助,这里有一些代码可以处理使我的导航菜单变小或变大(尽管我认为这与使菜单在较小的屏幕上消失没有太大关系):

$(function () {
  $('#sidebar-menu li ul').slideUp();
  $('#sidebar-menu li').removeClass('active');

  $('#sidebar-menu li').on('click touchstart', function() {
    var link = $('a', this).attr('href');

    if(link) { 
      window.location.href = link;
    } else {
      if ($(this).is('.active')) {
        $(this).removeClass('active');
        $('ul', this).slideUp();
      } else {
        $('#sidebar-menu li').removeClass('active');
        $('#sidebar-menu li ul').slideUp();

        $(this).addClass('active');
        $('ul', this).slideDown();
      }
    }
  });

  $('#menu_toggle').click(function () {
    if ($('body').hasClass('nav-md')) {
      $('body').removeClass('nav-md').addClass('nav-sm');
      $('.left_col').removeClass('scroll-view').removeAttr('style');
      $('.sidebar-footer').hide();

      if ($('#sidebar-menu li').hasClass('active')) {
        $('#sidebar-menu li.active').addClass('active-sm').removeClass('active');
      }
    } else {
      $('body').removeClass('nav-sm').addClass('nav-md');
      $('.sidebar-footer').show();

      if ($('#sidebar-menu li').hasClass('active-sm')) {
        $('#sidebar-menu li.active-sm').addClass('active').removeClass('active-sm');
      }
    }
  });   
});

这是该代码部分的 html:

<div class="nav toggle">
  <a id="menu_toggle"><i class="fa fa-bars"></i></a>
</div>

知道我应该在哪里找到处理使该菜单在较小屏幕上消失的代码吗?

谢谢

【问题讨论】:

  • 您需要使用媒体查询。此外,您应该缓存您的 jQuery 对象,即这样做 var $body = $( 'body' ); 而不是在任何地方使用 $( 'body' )。
  • 你的页面上有一些 CSS 吗?如果它包含媒体查询,它可能是屏幕相关行为的原因
  • 你可以用css中的媒体查询来做到这一点
  • 了解如何使用浏览器的开发者工具。使用这些,您可以轻松找出使左列在较小屏幕上消失的原因。切换到响应模式,检查可见的侧栏元素 - 然后缩小响应视口,直到它消失,然后你会看到哪个 CSS 规则负责。

标签: javascript jquery css twitter-bootstrap


【解决方案1】:

您应该在您的 Content/css/custom.css 文件中搜索 @media 查询

【讨论】:

  • 谢谢!我深入研究了媒体查询并能够解决我的问题:@media (min-width:991px) { #menu_toggle { display: none; } }
猜你喜欢
  • 1970-01-01
  • 2022-06-24
  • 1970-01-01
  • 2017-01-02
  • 2019-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-25
相关资源
最近更新 更多