javascript - 添加 java 脚本后,下拉菜单无法在 Index.html 上工作

标签 javascript html css

我正在创建我的个人网站,但我无法让下拉菜单在桌面上工作,然后当它在移动设备上时隐藏导航并单击(使用 js)显示导航。但它不仅仅适用于 Index.html

<div class="content">
    <div class="header">
            <div class="logo"><a href="assets/img/logo.png" alt="GM">GM</a>
            </div>
        <span class="menu-trigger">Menu</span>
        <nav class="nav clearfix">
            <ul class="clearfix">
                <li><a class="active" href="index.html">Home</a>
                </li>
                <li><a href="about.html">About</a>
                </li>
                <li><a href="#">Portfolio <i class="fa fa-angle-down fa-1"></i></a>
                    <ul class="sub-nav">
                        <li><a href="music.html">Music</a>
                        </li>
                        <li><a href="code.html">Code</a>
                        </li>
                    </ul>
                </li>
                <li><a href="contact.html">Contact</a>
                </li>
            </ul>
        </nav>
        <!-- end of Nav -->
    </div>
    </div>

CSS:

/**Header**/
.nav {
    height: 61px;
    background: #381120;
}

.logo a{
    float: left;
    text-decoration: none;
    color: #7e7e7e;
    font-size: 43px;
    padding-top: 11px;
    padding-left: 30px;
}

.nav ul {
    margin: 0;
    padding: 0;
    float: right;
}

.nav ul li {
    list-style: none;
    float: left;
    display: block;
    padding: 19px;
}

.nav ul li a {
    color: #7e7e7e;
    text-decoration: none;
    font-size: 25px;
}

.nav ul ul.sub-nav {
    display: none;
    background: #381120;
    width: auto;
    position: absolute;
}

.nav ul li:hover > ul {
    display: block;
}

.nav ul ul li {
    float: none;
    padding-left: 24px;
}

.nav ul li a.active {
    color: #08a1c7;
}

.nav ul li a:hover {
    color: #efefef;
}

和:

.menu-trigger{
    padding-top: 16px;
    padding-right: 30px;
    font-size: 25px;
    text-align: center;
    display: none;
    float: right;
    color: #7e7e7e
}

.menu-trigger p{
    color: #7e7e7e
}

    /**480px**/


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

    .menu-trigger{
        display: block;
    }

    .nav, .mobile-nav{
        display: none;
    }

    .nav-expanded{
        display: block;
    }

    .nav ul li{
        float: none;
        border-bottom: 1px solid #7e7e7e;
    }

    .nav ul li:last-child{
        border-bottom: none;
    }
}

这是 JS 对不起,我忘了把它放在这里:

jQuery(document).ready(function() {

    jQuery(".menu-trigger").click(function() {

        jQuery(".nav").slideToggle(400, function() {
            jQuery(this).toggleClass("nav-expanded").css('display', '');
        });

    });

});

最佳答案

您真的应该能够仅使用 CSS 为所有这些设置动画。你甚至不需要 jQuery,除了点击操作。

此外,这可能不是这种情况,但在过去我不得不像这样编写我的点击处理程序来绕过一些奇怪的错误。 jQuery 中的 SlideToggle 可能会导致一些故障效果,并且它并不是制作动画菜单的好方法。尽量避免使用 slideToggle()。

$("[your-selector]").on("click",function(){
     /// do something...
});

关于javascript - 添加 java 脚本后,下拉菜单无法在 Index.html 上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36707557/

相关文章:

javascript - 在 Angular 中有条件地添加 css 问题?

android - Android下的动画HTML5 : disappearing elements

javascript - vue.js : Filtering not working as I expect

Javascript 不正确的 header 检查解压缩 Python 生成的 zlib 缓冲区

javascript - React - Render 中的 HOCs - 规则有异常(exception)吗?

javascript - 从文件夹创建 zip 存档并使用 Node.js 保留结构

html - CSS 网格和图像叠加

javascript - 如何在谷歌可视化中画一条线来指示今天/当前日期

html - CSS 网格 |如何自动调整不同大小的列?

javascript - js : element. className 不起作用(创建暗模式)