我有一个下拉菜单,当屏幕低于930px时,您可以滚动查看。除非滚动,否则效果很好。您滚动并停留在顶部,但是在滚动并单击下拉菜单后,下拉菜单消失。有任何想法吗?

https://www.w3schools.com/code/tryit.asp?filename=FFFCYA8T8LZZ

最佳答案

向下滚动后,您的#myTopnav具有class="topnav active"。您的点击处理程序是这样的:

function myFunction() {
    var x = document.getElementById("myTopnav");
    if (x.className === "topnav") {
        x.className += " responsive";
    } else {
        x.className = "topnav";
    }
}


如果在向下滚动后单击,则元素的类不等于topnav(因为它是topnav active),因此此函数将类设置回topnav,从而在过程中删除了active类。

由于页面中仍然有jQuery,因此可以使用其toggleClass方法:

function myFunction() {
    $("#myTopnav").toggleClass("responsive");
}


这样可以确保responsive类和active类彼此独立地进行更改。

关于javascript - 滚动后单击下拉菜单消失,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43869196/

10-09 14:56