平安夜分享2款下拉菜单(CSS版本和JQuery版本)
2011-12-24 17:28 随风浪迹天涯 阅读(962) 评论(3) 编辑 收藏 举报昨天有一个同事,叫我帮忙,说他需要一个下拉菜单,叫我帮他整个出来。我说没问题啊,中午花了点时间,然后就给它弄了一个CSS样式的(这个这个是我 以前弄好的,一直收藏着,就拿出来改了改 给他了)。
可是,昨天下班的时候,他说他还想看一看jquery实现的下拉菜单,呵呵,我说你老兄可真够贪心的,不过 既然人家都说了,我昨天晚上就整了一个jquery的下拉菜单。其实,2个版本都很简单。
希望对各位看官有帮助。
HTML coed:
2个都运用下面的这个HTML代码作为演示实例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | < div id="div" class="menu"> < ul > < li >< a class="aa" href="">首页</ a > < ul > < li >< a href="#" title="">注册</ a ></ li > < li >< a href="" title="">登录</ a ></ li > < li >< a href="" title="">注销</ a ></ li > < li >< a href="" title="">行业新闻</ a ></ li > </ ul > </ li > < li >< a class="aa" href="">商务中心</ a > < ul > < li >< a href="" title="">客户首单</ a ></ li > < li >< a href="" title="">新建任务单</ a ></ li > < li >< a href="" title="">客户单跟踪</ a ></ li > < li >< a href="" title="">历史往来记录</ a ></ li > < li >< a href="" title="">业务签收</ a ></ li > </ ul > </ li > < li >< a class="aa" href="">配送中心</ a > < ul > < li >< a href="" title="">新建配送单</ a ></ li > < li >< a href="" title="">车辆检查</ a ></ li > < li >< a href="" title="">业务跟踪</ a ></ li > </ ul > </ li > < li >< a class="aa" href="">运输中心</ a > < ul > < li >< a href="" title="">新建派车单</ a ></ li > < li >< a href="" title="">车辆跟踪</ a ></ li > </ ul > </ li > < li >< a class="aa" href="">系统维护</ a > < ul > < li >< a href="" title="">城市数据</ a ></ li > < li >< a href="" title="">集团公司信息</ a ></ li > < li >< a href="" title="">部门信息</ a ></ li > < li >< a href="" title="">员工信息</ a ></ li > < li >< a href="" title="">仓库数据</ a ></ li > </ ul > </ li > < li >< a class="aa" href="">我的任务</ a > < ul > < li >< a href="" title="Example one">我提交的任务</ a ></ li > < li >< a href="" title="">我收到的任务</ a ></ li > < li >< a href="" title="">被退回的任务</ a ></ li > </ ul > </ li > < li >< a class="aa" href="">技术支持</ a > < ul > < li >< a href="" title="">技术架构</ a ></ li > < li >< a href="" title="">应用说明</ a ></ li > < li >< a href="" title="">关于我们</ a ></ li > </ ul > </ li > </ ul > < div class="clear"> </ div > </ div > |
1.JQuery版本的下来菜单
<style type= "text/css" > *{ font-size : 12px ;} a{ color :White; text-decoration : none ;} ul{ margin : 0 ; padding : 0 ;} ul li{ list-style : none ;} #div{ width : 960px ; height : 28px ;} #div ul li{ float : left ; height : 28px ; display : inline ; line-height : 28px ; position : relative ; margin-left : 10px ; left : -10px ; cursor : pointer ;} #div ul li ul{ position : absolute ; z-index : 99 ; display : none ; top : 30px ; width : 90px ;} #div ul li ul li{ display : block ; width : 68px ; height : 26px ; background-color : red ;} #div ul li a.aa{ color : red ; text-decoration : none ; border : 1px solid balck; width : 120px ; padding : 10px ; background-color : #b3ab79 ;} </style> |
上面的对一些的基本的CSS一些修饰,一看就懂。其实,上面我觉得最重要的是 #div ul li这里的是需要设置position为相对位置或者是绝对定位,比如我这里用的是:position:relative。
可能有些人有郁闷为什么需要这个呢?其实,这个主要是为了让第二个ul里面的子菜单能定位到它所需要的位置。就像上面的实例里用top和left来进行位置的定位。
我在园子里的一篇文章,如果不懂的可以看看:position知识
1 2 3 4 5 6 7 8 9 10 11 12 | $( function () { $( "#div ul li" ).hover( function () { $( this ).css( "background" , "#dfc184" ).children( "ul" ).slideDown(); }, function () { $( this ).css( "background" , "#fff" ).children( "ul" ).slideUp(); }) $( "#div ul li ul li" ).hover( function () { $( this ).css( "backgroundColor" , "#b3ab79" ); }, function () { $( this ).css( "backgroundColor" , "red" ); }) }) |
上面的是核心的jquery代码,其实很好理解,需要理解的也就是 hover这个事件。如果需要进一步了解jquery事件的,可以看我的另一片文章:《JQuery 动画效果集锦》。
hover事件 说到底,就是在2个事件进行来回的切换。就OK了,这样就实现了,但把鼠标移动到子菜单的时候,变底色的效果了。
很简单吧。
2.CSS 下拉子菜单
这个,好像我发表过了,不管了,我就在发一次了,把代码贴上,如果有不懂的看管,可以给我留言,我们在讨论。
1 2 3 4 5 6 7 8 9 10 11 | <style type= "text/css" > .menu{ font-family : 宋体, Arial , Helvetica , sans-serif ; width : 750px ; margin : 0 ; margin : 5px 0 50px 0 ;} .menu ul{ padding : 0 ; margin : 0 ; list-style-type : none ;} .menu ul li{ float : left ; position : relative ;} .menu ul li a, .menu ul li a:visited{ display : block ; text-align : center ; text-decoration : none ; width : 104px ; height : 30px ; color : #000 ; border : 1px solid #fff ; border-width : 1px 1px 0 0 ; background : #c9c9a7 ; line-height : 30px ; font-size : 11px ;} .menu ul li ul{ display : none ;} .menu ul li:hover a{ color : #fff ; background : #b3ab79 ;} .menu ul li:hover ul{ display : block ; position : absolute ; top : 31px ; left : 0 ; width : 105px ;} .menu ul li:hover ul li a{ display : block ; background : #faeec7 ; color : #000 ;} .menu ul li:hover ul li a:hover{ background : #dfc184 ; color : #000 ;} </style> |
上面需要理解的是 CSS中的伪类,如果不懂伪类的 可以看看我给你们找的资料,很好理解。
伪类参考资料:
1.CSS 伪类
我不怎么知道发布发布 我的压缩文件。。。知道的望说一句。
出处:http://www.cnblogs.com/damonlan
Q Q:*********
E_mail:Damon_lan@163.com or Dongcai.lan@hp.com
本博文欢迎大家浏览和转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,在『参考』的文章中,我会表明参考的文章来源,尊重他人版权。若您发现我侵犯了您的版权,请及时与我联系。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步