悬停样式应保持在动态加载多级菜单上

时间:2013-11-25 06:05:21

标签: javascript html css

我使用下面的脚本创建了包含大量自定义项的多级megamenu。

以下是相同的JsFiddle链接。

WORKING FIDDLE LINK

以下是相同的CSS代码。

/* ######### Drop Down DIVs CSS ######### */


.ddsubmenustyle, .ddsubmenustyle div{ /*topmost and sub DIVs, respectively*/
font: normal 13px Verdana;
margin: 0;
padding: 0;
position: absolute;
left: 0;
top: 0;
list-style-type: none;
background: transparent;
border:none;
border-left: 2px solid #ffffff;
border-bottom-width: 0;
visibility: hidden;
z-index: 100;
}

.ddsubmenustyle ul{
margin: 0;
padding: 0;
position: absolute;
left: 0;
top: 0;
list-style-type: none;
border: 0px none;
}

.ddsubmenustyle li a{
display: block;
width: 170px; /*width of menu (not including side paddings)*/
color: #09519b;
background-color: #d6d6d6;
text-decoration: none;
padding: 8px 0px 8px 13px;

}

* html .ddsubmenustyle li{ /*IE6 CSS hack*/
display: inline-block;
width: 170px; /*width of menu (include side paddings of LI A*/
}

.ddsubmenustyle li a:hover{
font-weight:bold;
background-color:#bfbfbf;
}

/* ######### Neutral CSS  ######### */

.downarrowpointer{ /*CSS for "down" arrow image added to top menu items*/
padding-left: 4px;
border: 0;
}

.rightarrowpointer{ /*CSS for "right" arrow image added to drop down menu items*/
position: absolute;
padding-top: 3px;
left: 100px;
border: 0;
}

/* ######### Marker List Vertical Menu ######### */

.markermenu{
width: 175px; /*width of side bar menu*/
clear: left;
/*position: relative;*/ /*Preserve this for "right" arrow images (added by script) to be positioned correctly*/
position: absolute;
top:136px;

}

.markermenu ul{
list-style-type: none;
margin: 56px 0 0 0;
padding: 0;
/*border: 1px solid #9A9A9A;*/
}

.markermenu ul li a{
background: #d6d6d6; /*light gray background*/
color: #09519b !important;
display: block;
width: auto;
padding: 8px 0;
padding-left: 13px;
text-decoration: none;
/*border-bottom: 1px solid #B5B5B5;*/
}

.topRound{
    border-radius:5px 5px 0 0;
}

.bottomRound{
    border-radius:0 0 5px 5px;
}

* html .markermenu ul li a{ /*IE6 hack*/
width: 155px;
}

.markermenu ul li a:visited, .markermenu ul li a:active{
color: #00014e;
}

.markermenu ul li a:hover, .markermenu ul li a.selected{
 font-weight:bold;
 background-color:#bfbfbf;
}


/* ######### Customized Drop Down ULs CSS (inherits from ddlevelsmenu-base.css) ######### */

.blackwhite li a{
background: white;
}

.blackwhite li a:hover{
background: black;
color: white;
}

ul.miniBlocks{width:732px !important; background:#d6d6d6;}
ul.miniBlocks1{width:366px !important; background:#d6d6d6;}
.miniBlocks li{float:left !important;}
.miniBlocks1 li{float:left !important;}

.mattblackmenu a.selected, .ddsubmenustyle li.selected > a {
background: #bfbfbf; /*background of tab with "selected" class assigned to its LI */
color: #09519B;
font-weight:bold;
}

脚本和CSS工作正常。当您转到导航项时,您可以看到鼠标悬停在选择上,背景颜色较深,字体粗体。

现在,这个菜单是从js / jsp包含文件中动态生成的。

我需要的是当用户想要打开一个页面时,单击它,悬停样式应该保留。

例如,

如果您将鼠标悬停在JavaScript参考&gt; <项目文件夹5b>项目文件夹5.2b&gt;子项5.2.1b,当你想打开子项5.2.1b时,点击它,当与子项5.2.1b相关的页面打开时,悬停样式应保持单击以便用户知道他在Sub上项目5.2.1b页面,当他再次想要悬停并打开另一页或查看他在哪个页面时。

欢迎任何其他方式,但应该适用于我的动态场景。

1 个答案:

答案 0 :(得分:0)

如果这是针对单页应用,那么只需为活动项目提供一个active类,您可以将其设置为活动项目。

否则,您需要在服务器端执行此操作。您的CMS /服务器端应用程序需要为当前活动菜单项提供类active

.ddsubmenustyle li a:hover,
.ddsubmenustyle li a.active {
    font-weight:bold;
    background-color:#bfbfbf;
}