zoukankan      html  css  js  c++  java
  • jq+css+html简单实现导航下拉菜单

    相信导航栏下拉菜单是web开发最常见的一个item了.这里就不做介绍了,直接上code.

    Html部分

     1  <div class="_nav">
     2         <ul id="sddm">
     3             <li><a href="/Home/Index" id="a_nav_Home" class="a_nav_Menu">Home</a>
     4                 <div id="nav_Home" class="div_nav_Menu">
     5                 </div>
     6             </li>
     7             <li><a href="#" id="a_nav_Employee" class="a_nav_Menu">Employee</a>
     8                 <div id="nav_Employee" class="div_nav_Menu">
     9                     @Html.ActionLink("Test", "Test", new { area = "BMOManagement", controller = "Test" })
    10                     @Html.ActionLink("Test", "Test", new { area = "BMOManagement", controller = "Test" })
    11                     @Html.ActionLink("Test", "Test", new { area = "BMOManagement", controller = "Test" })
    12                     @Html.ActionLink("Test", "Test", new { area = "BMOManagement", controller = "Test" })
    13                     @Html.ActionLink("Test", "Test", new { area = "BMOManagement", controller = "Test" })
    14                 </div>
    15             </li>
    16             <li><a href="#" id="a_nav_Billing" class="a_nav_Menu">Billing</a>
    17                 <div id="nav_Billing" class="div_nav_Menu">
    18                     <a href="#">B Test1</a>
    19                     <a href="#">B Test2</a>
    20                 </div>
    21             </li>
    22             <li><a href="#" id="a_nav_Forecast" class="a_nav_Menu">Forecast</a>
    23                 <div id="nav_Forecast" class="div_nav_Menu">
    24                     <a href="#">F Test1</a>
    25                     <a href="#">F Test2</a>
    26                     <a href="#">F Test3</a>
    27                 </div>
    28             </li>
    29         </ul>
    30     </div>
    View Code

    CSS部分

    /*********************------------------------------Menu CSS------------------------*********************/

     1 #sddm {
     2             margin: 0 auto;
     3         }
     4 
     5             #sddm li {
     6                 margin: 0;
     7                 padding: 0;
     8                 list-style: none;
     9                 float: left;
    10                 font: bold 12px arial;
    11             }
    12 
    13                 #sddm li a {
    14                     display: block;
    15                     margin: 0 1px 0 0;
    16                     padding: 4px 10px;
    17                     width: 60px;
    18                     color: #49AB6E;
    19                     text-align: center;
    20                     text-decoration: none;
    21                 }
    22 
    23                     #sddm li a:hover {
    24                         background: #49AB6E;
    25                         color: white;
    26                     }
    27 
    28             #sddm div {
    29                 position: absolute;
    30                 visibility: hidden;
    31                 margin: 0;
    32                 padding: 0;
    33             }
    34 
    35                 #sddm div a {
    36                     position: relative;
    37                     display: block;
    38                     margin: 0;
    39                     width: auto;
    40                     white-space: nowrap;
    41                     text-align: center;
    42                     text-decoration: none;
    43                     background: #49AB6E;
    44                     color: white;
    45                     font: 12px arial;
    46                 }
    47 
    48                     #sddm div a:hover {
    49                         background: #E5D6B8;
    50                         color: white;
    51                     }
    View Code

    JS部分

     1 var timeout = 1;
     2 var closetimer = 0;
     3 var ddmenuitem = 0;
     4 
     5 // close showed layer
     6 function mclose() {
     7     if (ddmenuitem) ddmenuitem.style.visibility = 'hidden';
     8 }
     9 
    10 // cancel close timer
    11 function mcancelclosetime() {
    12     if (closetimer) {
    13         window.clearTimeout(closetimer);
    14         closetimer = null;
    15     }
    16 }
    17 
    18 // close layer when click-out
    19 document.onclick = mclose;
    20 // -->
    21 
    22 $(function () {
    23     // open hidden layer
    24     $(".a_nav_Menu").mouseover(function () {
    25         var currentId = $(this).attr("id");
    26 
    27         // cancel close timer
    28         mcancelclosetime();
    29 
    30         // close old layer
    31         if (ddmenuitem) ddmenuitem.style.visibility = 'hidden';
    32         $("#" + currentId.replace("a_","")).width($("#" + currentId).parent().width() - 1);
    33         $("#" + currentId).css({ "background": "#49AB6E", "color": "white" });
    34 
    35         // get new layer and show it
    36         ddmenuitem = document.getElementById(currentId.replace("a_", ""));
    37         ddmenuitem.style.visibility = 'visible';
    38     });
    39 
    40     // go close timer
    41     $(".a_nav_Menu").mouseout(function () {
    42         var currentId = $(this).attr("id");
    43         $("#" + currentId).css({ "background": "", "color": "#49AB6E" });
    44         
    45         closetimer = window.setTimeout(mclose, timeout);
    46     });
    47 
    48     // go close timer
    49     $(".div_nav_Menu").mouseout(function () {
    50         var currentId = $(this).attr("id");
    51         $("#a_" + currentId).css({ "background": "", "color": "#49AB6E" });
    52         closetimer = window.setTimeout(mclose, timeout);
    53     });
    54 
    55     $(".div_nav_Menu").mouseover(function () {
    56         var currentId = $(this).attr("id");
    57         $("#a_" + currentId).css({ "background": "#49AB6E", "color": "white" });
    58         mcancelclosetime();
    59     });
    60 })
    View Code

    这里只是简单实现一下,如果页面要求比较高,可能就不是很实用了,这个只是当时接了一个私活,因为比较注重业务而不是code所以就写的比较快。


    作  者:请叫我头头哥
    出  处:http://www.cnblogs.com/toutou/
    关于作者:专注于基础平台的项目开发。如有问题或建议,请多多赐教!
    版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
    特此声明:所有评论和私信都会在第一时间回复。也欢迎园子的大大们指正错误,共同进步。或者直接私信
    声援博主:如果您觉得文章对您有帮助,可以点击文章右下角“推荐”一下。您的鼓励是作者坚持原创和持续写作的最大动力!

  • 相关阅读:
    uva 11178 Morley&#39;s Theorem(计算几何-点和直线)
    .net web 开发平台- 表单设计器 一(web版)
    Oracle EBS Web ADI 中的术语
    Android学习笔记(十七)——使用意图调用内置应用程序
    PreferenceFragment 使用 小结
    ccMacros
    海量数据查询优化
    c++容器类
    Codeforce 424C Magic Formulas 找规律
    android播放html5视频,仅仅有声音没有图像视频
  • 原文地址:https://www.cnblogs.com/toutou/p/4428233.html
Copyright © 2011-2022 走看看