javascript - CSS 下拉菜单 onclick

标签 javascript jquery html css menu

我尝试在点击时创建一个下拉菜单。当我单击“菜单”并在我的导航栏上的 0 max-height 和 20 em max-height 之间转换时,我试图切换两个类。但是正如我所看到的,当我的最大高度为 0 时,它会像占位符一样占用空白。我不想要那样,因为它弄乱了我对网站的看法。 我在考虑 display:block 和 display:none 但我知道你不能在这两者之间转换。当我单击指定位置时,有什么方法可以在单击时创建下拉菜单吗? 编辑:

我有这个代码:

html:

<header>
<nav>
<div class="handle">Menu</div>
<ul>
<li><a id="active" href="index.html">HOME</a></li>
<li><a href="collection.html">PRODUCTS</a></li>
<li><a href="events.html">EVENTS</a></li>
<li><a href="info.html">CONTACT</a></li>
</ul>
</nav>
</header>

和CSS:

.handle{
    width: 100%;
    background:#333333;
    text-align: left;
    box-sizing: border-box;
    padding:15px 10px;
    cursor: pointer;
    display: none;
    color: white;
    box-sizing: border-box;
}

@media (max-width:980px){

    .showing{
        max-height:20em ;
    } 
 nav ul{
        max-height: 0;

    }
}

和 JS:

$(document).ready(function () {
$('.handle').on('click', function () {
 $('nav ul').toggleClass('showing')
});
});

标题还有一些样式,但我认为并不重要。抱歉,如果我不清楚。

最佳答案

这段代码对我有用。希望能有所帮助...

  <!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>On click Menu</title>
        <style>
            .handle{
                width: 100%;
                background:#333333;
                text-align: left;
                box-sizing: border-box;
                padding:15px 10px;
                cursor: pointer;
                color: white;
                box-sizing: border-box;
            }

            .hide {
                display: none;
            }
        </style>
    </head>
    <body>
        <nav>
            <div class="handle">Menu</div>
            <ul class="hide">
                <li><a id="active" href="index.html">HOME</a></li>
                <li><a href="collection.html">PRODUCTS</a></li>
                <li><a href="events.html">EVENTS</a></li>
                <li><a href="info.html">CONTACT</a></li>
            </ul>
        </nav>

        <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
        <script>

            $(document).ready(function() {
                $('.handle').on('click', function() {
                    $('nav ul').slideToggle();
                });
            });

        </script>
    </body>
</html>

关于javascript - CSS 下拉菜单 onclick,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31998846/

相关文章:

javascript - 无法在框架中加载 youtube api

javascript - 具有属性的对象与 JavaScript 中的 OR

javascript - 将启用 IMS 和 WebRTC 的客户端集成到 Lync 客户端?

javascript - 当我将鼠标焦点放在元素上时,mouseenter 和 mouseleave 会继续触发

c# - RegisterClientScriptBlock 不完整的 JS 脚本标签

javascript - JS - 从嵌套在应该可点击的元素中的元素取消绑定(bind)点击操作

javascript - 使用jQuery动态生成div时如何调用函数

javascript - 通过 jquery 修改 HTML 字符串并生成另一个反射(reflect)所做更改的 html 字符串?

javascript - Jquery index() 找不到我的元素

javascript - 单击按钮时,期望显示文本,但找不到元素 - Protractor