【问题标题】:Menu Text disappears after resizing from Mobile to Desktop从移动设备调整到桌面后菜单文本消失
【发布时间】:2015-11-15 14:38:26
【问题描述】:

我的网站上有一个非常简单的菜单系统:http://jsfiddle.net/r7zv2o97/

当我将窗口大小调整为移动设备大小时,会出现一个按钮 - 太棒了!

当我单击此按钮时,它会隐藏菜单 - 太棒了!

但是,当我将窗口大小重新调整为桌面大小时,Menu 一词不再出现。

我该如何解决这个问题?

$('#header_nav').prepend('<div id="menu-button"></div>');

$('#menu-button').on('click', function(){
    var menuItems = $(".menu-primary-menu-container");
    menuItems.toggle();
    $(this).toggleClass('active');
});
body {
    background:black;
}

#header_nav {
  padding-top: 0;
  position: relative;
  height: 100px;
  transition: height .001s ease;
  background: #1588cb;
  width: 100%;
  height: 100px;
  position: fixed;
  top: 0;
  left: 0;
}

#menu-button {
  display:none;
  position: relative;
  z-index: 10000;
}

.menu-primary-menu-container {
    display:inline-block
}

@media only screen and (max-width: 420px) {

  #menu-button {
    display: block;
    top: 20px;
    position: fixed;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    width: 100%;
    padding: 15px 0px 22px 20px;
    text-transform: uppercase;
    font-weight: 700;
    font-size: 14px;
    letter-spacing: 1px;
    color: #111;
    cursor: pointer;
  }

  #menu-button:after {
    display: block;
    content: '';
    position: absolute;
    height: 3px;
    width: 20px;
    border-top: 2px solid #ffffff;
    border-bottom: 2px solid #ffffff;
    right: 20px;
    top: 16px;
  }

  #menu-button:before {
    display: block;
    content: '';
    position: absolute;
    height: 3px;
    width: 20px;
    border-top: 2px solid #ffffff;
    right: 20px;
    top: 26px;
  }

  #menu-button.active {
      
  }
    
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div id="header_nav">

<nav class="primary menu">

    <div class="menu-primary-menu-container">
        
        <ul id="menu-primary-menu" class="menu">
            <li id="menu-item-44" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-44"><a href="/wordpress/">Home</a></li>
        </ul>
        
    </div>
    
</nav>
    
</div>

【问题讨论】:

    标签: javascript jquery html css


    【解决方案1】:

    问题

    当您在小型设备中隐藏 .menu-primary-menu-container 并在此之后调整窗口大小时。它有display:none;,所以你看不到.menu-primary-menu-container。但是,下面的代码覆盖了 js display:none;,其中窗口大小大于 420px

    Jsfiddle

    @media only screen and (min-width: 420px) {
        .menu-primary-menu-container {
            display:inline-block !important;
        }
    }
    

    【讨论】:

    • 非常抱歉我的延误。现实生活挡道。非常感谢。
    【解决方案2】:

    使用这个代码小提琴here

    $('#header_nav').prepend('<div id="menu-button"></div>');
    
    $('#menu-button').on('click', function () {
        var menuItems = $(".menu-primary-menu-container");
        menuItems.toggle();
        $(this).toggleClass('active');
    });
    body {
        background:black;
    }
    #header_nav {
        padding-top: 0;
        position: relative;
        height: 100px;
        transition: height .001s ease;
        background: #1588cb;
        width: 100%;
        height: 100px;
        position: fixed;
        top: 0;
        left: 0;
    }
    #menu-button {
        display:none;
        position: relative;
        z-index: 10000;
    }
    .menu-primary-menu-container {
        display:inline-block;
    }
    @media only screen and (max-width: 420px) {
        #menu-button {
            display: block;
            top: 20px;
            position: fixed;
            -webkit-box-sizing: border-box;
            -moz-box-sizing: border-box;
            box-sizing: border-box;
            width: 100%;
            padding: 15px 0px 22px 20px;
            text-transform: uppercase;
            font-weight: 700;
            font-size: 14px;
            letter-spacing: 1px;
            color: #111;
            cursor: pointer;
        }
        #menu-button:after {
            display: block;
            content:'';
            position: absolute;
            height: 3px;
            width: 20px;
            border-top: 2px solid #ffffff;
            border-bottom: 2px solid #ffffff;
            right: 20px;
            top: 16px;
        }
        #menu-button:before {
            display: block;
            content:'';
            position: absolute;
            height: 3px;
            width: 20px;
            border-top: 2px solid #ffffff;
            right: 20px;
            top: 26px;
        }
        #menu-button.active {
        }
    }
    @media only screen and (min-width: 420px) {
        .menu-primary-menu-container {
            display:inline-block !important;
        }
    }
    <div id="header_nav">
        <nav class="primary menu">
            <div class="menu-primary-menu-container">
                <ul id="menu-primary-menu" class="menu">
                    <li id="menu-item-44" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-44"><a href="/wordpress/">Home</a>
    
                    </li>
                </ul>
            </div>
        </nav>
    </div>

    【讨论】:

      猜你喜欢
      • 2014-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-17
      • 1970-01-01
      相关资源
      最近更新 更多