当前位置: 首页 > news >正文

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

转载于:https://www.cnblogs.com/toutou/p/4428233.html

相关文章:

  • 使用docker-compose进行多节点部署
  • 一次goldengate故障引发的操作系统hang起,HA自动切换
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • Spring--JdbcTemplate
  • Swift 项目主管和大家聊了聊 Swift 5,ABI 稳定性最受关注
  • 什么是测试需求?(转)
  • JavaScript对象:我们真的需要模拟类吗?
  • 深入理解C语言
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • .NET Core跨平台微服务学习资源
  • ZOJ 3329
  • 避雷针 Lightning Conductor
  • 搭建Selenium-Grid环境
  • Spring Cloud Alibaba迁移指南(一):一行代码从 Hystrix 迁移到 Sentinel
  • Spring 之 第一个hellword
  • [Vue CLI 3] 配置解析之 css.extract
  • Akka系列(七):Actor持久化之Akka persistence
  • CODING 缺陷管理功能正式开始公测
  • golang中接口赋值与方法集
  • javascript数组去重/查找/插入/删除
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • nfs客户端进程变D,延伸linux的lock
  • React+TypeScript入门
  • Sequelize 中文文档 v4 - Getting started - 入门
  • Terraform入门 - 3. 变更基础设施
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 那些被忽略的 JavaScript 数组方法细节
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 我与Jetbrains的这些年
  • 一些css基础学习笔记
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • # Maven错误Error executing Maven
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • ${ }的特别功能
  • (九)One-Wire总线-DS18B20
  • (六) ES6 新特性 —— 迭代器(iterator)
  • (十一)手动添加用户和文件的特殊权限
  • (转)linux自定义开机启动服务和chkconfig使用方法
  • (转)visual stdio 书签功能介绍
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • .cfg\.dat\.mak(持续补充)
  • .NET delegate 委托 、 Event 事件
  • .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖
  • .net 怎么循环得到数组里的值_关于js数组
  • .net开发时的诡异问题,button的onclick事件无效
  • .secret勒索病毒数据恢复|金蝶、用友、管家婆、OA、速达、ERP等软件数据库恢复
  • .sh 的运行
  • @manytomany 保存后数据被删除_[Windows] 数据恢复软件RStudio v8.14.179675 便携特别版...
  • @SuppressLint(NewApi)和@TargetApi()的区别
  • [1159]adb判断手机屏幕状态并点亮屏幕
  • [ActionScript][AS3]小小笔记
  • [C++]四种方式求解最大子序列求和问题
  • [codevs 2822] 爱在心中 【tarjan 算法】
  • [Django 0-1] Core.Email 模块