jQuery实现简单的列表导航菜单

最近一段时间准备开始学习JQUERY,感觉JQUERY的功能非常强大,而且代码量也减少了许多....代码也非常的清晰!

下面是我做的一个简单的导航菜单,因为是新手,难免有什么不对的地方,希望大家拍砖!

好了 开始进入正题吧:

1.首先定义CSS样式表:

Css Code
1 <style type="text/css">
2 body{font-size:13px}
3 ul,li{list-style-type:none;padding:0px;margin:0px}
4 .menu{width:190px;border:solid 1px #E5D1A1;background-color:#FFFDD2}
5 .optn{width:190px;line-height:28px;border-top:dashed 1px #ccc}
6 .content{padding-top:10px;clear:left}
7 a{text-decoration:none;color:#666;padding:10px}
8 .optnFocus{background-color:#fff;font-weight:bold}
9 div{padding:10px}
10 div img{float:left;padding-right:6px}
11 span{padding-top:3px;font-size:14px;font-weight:bold;float:left}
12 .tip{width:190px;border:solid 2px #ffa200;position:absolute;padding:10px;
13 background-color:#fff;display:none}
14 .tip li{line-height:23px;}
15 #sort{position:absolute;display:none}
16 </style>

2.引用JQUERY的框架,大家可以去官网上下载最新的JQUERY,好像JQUERY1.5的版本都发布了,链接地址:http://jquery.com/

3.定义HTML标签:

Html Code
1 <ul>
2 <li class="menu">
3 <div>
4 <img alt="" src="Images/icon.gif" />
5 <span>电脑数码类产品</span>
6 </div>
7 <ul class="content">
8 <li class="optn"><a href="#">笔记本</a></li>
9 <ul class="tip">
10 <li><a href="#">笔记本1</a></li>
11 <li><a href="#">笔记本2</a></li>
12 <li><a href="#">笔记本3</a></li>
13 <li><a href="#">笔记本4</a></li>
14 <li><a href="#">笔记本5</a></li>
15 </ul>
16 <li class="optn"><a href="#">移动硬盘</a></li>
17 <ul class="tip">
18 <li><a href="#">移动硬盘1</a></li>
19 <li><a href="#">移动硬盘2</a></li>
20 <li><a href="#">移动硬盘3</a></li>
21 <li><a href="#">移动硬盘4</a></li>
22 <li><a href="#">移动硬盘5</a></li>
23 </ul>
24 <li class="optn"><a href="#">电脑软件</a></li>
25 <ul class="tip">
26 <li><a href="#">电脑软件1</a></li>
27 <li><a href="#">电脑软件2</a></li>
28 <li><a href="#">电脑软件3</a></li>
29 <li><a href="#">电脑软件4</a></li>
30 <li><a href="#">电脑软件5</a></li>
31 </ul>
32 <li class="optn"><a href="#">数码产品</a></li>
33 <ul class="tip">
34 <li><a href="#">数码产品1</a></li>
35 <li><a href="#">数码产品2</a></li>
36 <li><a href="#">数码产品3</a></li>
37 <li><a href="#">数码产品4</a></li>
38 <li><a href="#">数码产品5</a></li>
39 </ul>
40 </ul>
41 <img id="sort" src="Images/sort.gif" alt=""/>
42 </li>
43 </ul>

4.接下来是定义最重要的JQUERY代码了:

Jquery Code
1 <script type="text/javascript">
2 $(function() {
3 var curY; //获取所选项的Top值
4 var curH; //获取所选项的Height值
5 var curW; //获取所选项的Width值
6 var srtY; //设置提示箭头的Top值
7 var srtX; //设置提示箭头的Left值
8 var objL; //获取当前对象
9 /*
10 *设置当前位置数值
11 *参数obj为当前对象名称
12 */
13 function setInitValue(obj) {
14 curY = obj.offset().top
15 curH = obj.height();
16 curW = obj.width();
17 srtY = curY + (curH / 2) + "px"; //设置提示箭头的Top值
18 srtX = curW - 5 + "px"; //设置提示箭头的Left值
19 }
20 $(".optn").mouseover(function() {//设置当前所选项的鼠标滑过事件
21 objL = $(this); //获取当前对象
22 setInitValue(objL); //设置当前位置
23 var allY = curY - curH + "px"; //设置提示框的Top值
24 objL.addClass("optnFocus"); //增加获取焦点时的样式
25 objL.next("ul").show().css({ "top": allY, "left": curW }) //显示并设置提示框的坐标
26 $("#sort").show().css({ "top": srtY, "left": srtX }); //显示并设置提示箭头的坐标
27 })
28 .mouseout(function() {//设置当前所选项的鼠标移出事件
29 $(this).removeClass("optnFocus"); //删除获取焦点时的样式
30 $(this).next("ul").hide(); //隐藏提示框
31 $("#sort").hide(); //隐藏提示箭头
32 })
33 $(".tip").mousemove(function() {
34 $(this).show(); //显示提示框
35 objL = $(this).prev("li"); //获取当前的上级li对象
36 setInitValue(objL); //设置当前位置
37 objL.addClass("optnFocus"); //增加上级li对象获取焦点时的样式
38 $("#sort").show().css({ "top": srtY, "left": srtX }); //显示并设置提示箭头的坐标
39 })
40 .mouseout(function() {
41 $(this).hide(); //隐藏提示框
42 $(this).prev("li").removeClass("optnFocus"); //删除获取焦点时的样式
43 $("#sort").hide(); //隐藏提示箭头
44 })
45 })
46 </script>

5.好了,大功告成了......

运行的效果如下:

posted @ 2011-03-01 10:19  骑着猪赛跑  阅读(1146)  评论(3编辑  收藏  举报