Discuz教程网

基于jQuery的简单的列表导航菜单

[复制链接]
authicon dly 发表于 2011-3-2 11:12:09 | 显示全部楼层 |阅读模式
最近一段时间准备开始学习JQUERY,感觉JQUERY的功能非常强大,而且代码量也减少了许多....代码也非常的清晰!
下面是我做的一个简单的导航菜单,因为是新手,难免有什么不对的地方,希望大家拍砖!
好了 开始进入正题吧:
1.首先定义CSS样式表:
代码如下:

  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标签:
代码如下:

  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代码了:
代码如下:

  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.好了,大功告成了......
运行的效果如下:





上一篇:防止用户利用PHP代码DOS造成用光网络带宽
下一篇:jQuery获取文本节点之 text()/val()/html() 方法区别
authicon 微博评论 发表于 2011-3-2 12:17:30 | 显示全部楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2025-5-2 14:18

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表