小编典典

仅在单击父项后打开子菜单

all

我想我的问题以前已经回答过很多次了,但我找不到我的确切情况。

我有一个带有子菜单的垂直菜单,我只想在单击父级(而不是悬停)时显示子菜单,一次只显示一个子菜单,在单击菜单外的某个位置后,我希望子菜单消失。

这就是我现在所拥有的——它基于现在的悬停。我尝试将 a:hover 更改为 a:active 之类的东西,但效果不佳(我的 CSS 不太好)。

   /* The container */
     #cssmenu  > ul {
        display: block;
        position: relative;
      //width: 190px;
      width:100%;
     }

        /* The list elements which contain the links */
           #cssmenu  > ul li {
              display: block;
              position: relative;
              margin: 0;
              padding: 0;
              width: 100%;  
           }

            /* General link styling */
            #cssmenu  > ul li a {
                display: block;
                position: relative;
                margin: 2;
                width:95%; 
                height:50px; 
                background-color:#ABC578; 
                border-left:solid 0px #FFFFFF; 
                border-bottom:solid 1px #FFFFFF;
                font: 0.7em Tahoma, sans-serif;
                font-size: 14px;
                font-weight:bold;
                color: #FFFFFF;
                text-decoration:none;
                padding-top:30px;
            }


            /* The hover state of the menu/submenu links */
            #cssmenu  > ul li>a:hover, #cssmenu  > ul li:hover>a {
                color: #fff;
                text-shadow: 0 1px 0 rgba(0, 0, 0, .3);
                background: #82c500;
                background: -webkit-linear-gradient(bottom, #82c500, #000000);
                background: -ms-linear-gradient(bottom, #82c500, #000000); 
                background: -moz-linear-gradient(bottom, #82c500, #000000);
                background: -o-linear-gradient(bottom, #82c500, #000000);
                border-color: transparent;
            }

            /* The arrow indicating a submenu */
            #cssmenu  > ul .has-sub>a::after {
                content: '';
                position: absolute;
                top: 34px;
                right: 8px;
                width: 0px;
                height: 0px;

                /* Creating the arrow using borders */
                border: 4px solid transparent;
                border-left: 4px solid #d8d8d8; 
            }

            /* The same arrow, but with a darker color, to create the shadow effect */
            #cssmenu  > ul .has-sub>a::before {
                content: '';
                position: absolute;
                top: 35px;
                right: 8px;
                width: 0px;
                height: 0px;

                /* Creating the arrow using borders */
                border: 4px solid transparent;
                border-left: 4px solid #000;
            }

            /* Changing the color of the arrow on hover */
            #cssmenu  > ul li>a:hover::after, #cssmenu  > ul li:hover>a::after {
                border-left: 4px solid #fff;
            }

            #cssmenu  > ul li>a:hover::before, #cssmenu  > ul li:hover>a::before {
                border-left: 4px solid rgba(0, 0, 0, .3);
            }


            /* THE SUBMENUS */
            #cssmenu  > ul ul {
                position: absolute;
                left:95%;
                width:100%;
                top: -9999px;
                padding-left: 5px;
                opacity: 0;
                /* The fade effect, created using an opacity transition */
                -webkit-transition: opacity .2s ease-in;
                -moz-transition: opacity .2s ease-in;
                -o-transition: opacity .2s ease-in;
                -ms-transition: opacity .2s ease-in;
            }

            /* Showing the submenu when the user is hovering the parent link */
            #cssmenu  > ul li:hover>ul {
                top: -2px;
                opacity: 1;
            }

请问有人有什么想法吗?


阅读 72

收藏
2022-05-27

共1个答案

小编典典

现在我在网站的页脚中有这样的东西:

     $('html').click(function() { 
            hideSubMenu(); 
     }); 
     $("#cssmenu").click(function(event){ 
            event.stopPropagation(); 
     });

当我点击子菜单时,我调用显示子菜单的 subMenu 函数:

    <div id='cssmenu'>
    <ul>
      <li class='has-sub '><a href='#' onclick="subMenu('handleSubMenu1')">
    ...
2022-05-27