【问题标题】:Adding Close functionality for mobile menu with submenu为带有子菜单的移动菜单添加关闭功能
【发布时间】:2021-03-24 22:19:14
【问题描述】:

我正在为我在 Wordpress + Divi 主题中构建的网站开发移动菜单。 当网站用户点击“汉堡图标”时,它会打开一个全屏菜单:

移动菜单

当您点击“终止”时,它会打开一个子菜单:

带有子菜单的移动菜单

我希望子菜单在第二次点击“终止”时再次消失。但我很遗憾不知道怎么做。

这是我使用的代码:

<li class="nav-link">
    <a href="#">Termine<i class="fas fa-caret-fown"></i></a>
        <div class="dropdown">
            <ul>
                <li class="dropdown_link">
                    <a href="#" onclick="closeNav()">Regelmäßige Termine</a>
                </li>
                <li class="dropdown_link">
                    <a href="#" onclick="closeNav()">Besondere Termine</a>
                </li>
                <li class="dropdown_link">
                    <a href="#" onclick="closeNav()">Freizeiten</a>
                </li>
            </ul>
        </div>
</li>

打开子菜单的 CSS 如下所示:

.nav-link:hover > .dropdown {
    display: block;
 }

“closeNav()”的 Java 脚本函数是:

function closeNav() {
    document.getElementById("mySidenav").style.width = "0";
}

【问题讨论】:

    标签: javascript css wordpress mobile menu


    【解决方案1】:

    将您的代码更改为:

    function closeNav() {
        document.getElementById("mySidenav").style.display = "none";
    }
    

    请注意以下几点:

    • 如果&lt;a&gt; 元素是常规的 HTML 链接(不是由某些 javascript 路由器生成的),当用户单击它们时,他们只会导航到不同的页面,因此菜单将会关闭。
    • 您的页面看起来像是为移动使用而设计的。在大多数移动设备中,hover 不起作用,因为点击链接实际上是一次点击。

    【讨论】:

    • 嘿,谢谢您的评论!这只是为了让导航消失,当点击 对吗?您是否也有解决主要问题的方法?谢谢=)
    • @johnthreesixteenamen 是的,它应该在单击元素时消失。
    • 非常感谢!你知道如何解决我的主要问题吗?那,当我第二次单击下拉触发器“终止”时,它会使下拉子菜单消失吗?谢谢
    • @johnthreesixteenamen 我创造了这个小提琴。 jsfiddle.net/anpel13/2cqku3h7。在 chrome mobile 中,它不会在随后的点击中消失。再说一次,当您的基本意思是 expanded 时,使用 :hover 并不是一个理想的解决方案,并且最终可能会产生意想不到的结果。
    猜你喜欢
    • 2013-10-14
    • 1970-01-01
    • 1970-01-01
    • 2013-11-30
    • 2015-02-20
    • 2019-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多