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


Posted in Javascript onMarch 02, 2011

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

好了 开始进入正题吧:

1.首先定义CSS样式表:

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

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

3.定义HTML标签:

<ul> 
<li class="menu"> 
<div> 
<img alt="" src="Images/icon.gif" /> 
<span>电脑数码类产品</span> 
</div> 
<ul class="content"> 
<li class="optn"><a href="#">笔记本</a></li> 
<ul class="tip"> 
<li><a href="#">笔记本1</a></li> 
<li><a href="#">笔记本2</a></li> 
<li><a href="#">笔记本3</a></li> 
<li><a href="#">笔记本4</a></li> 
<li><a href="#">笔记本5</a></li> 
</ul> 
<li class="optn"><a href="#">移动硬盘</a></li> 
<ul class="tip"> 
<li><a href="#">移动硬盘1</a></li> 
<li><a href="#">移动硬盘2</a></li> 
<li><a href="#">移动硬盘3</a></li> 
<li><a href="#">移动硬盘4</a></li> 
<li><a href="#">移动硬盘5</a></li> 
</ul> 
<li class="optn"><a href="#">电脑软件</a></li> 
<ul class="tip"> 
<li><a href="#">电脑软件1</a></li> 
<li><a href="#">电脑软件2</a></li> 
<li><a href="#">电脑软件3</a></li> 
<li><a href="#">电脑软件4</a></li> 
<li><a href="#">电脑软件5</a></li> 
</ul> 
<li class="optn"><a href="#">数码产品</a></li> 
<ul class="tip"> 
<li><a href="#">数码产品1</a></li> 
<li><a href="#">数码产品2</a></li> 
<li><a href="#">数码产品3</a></li> 
<li><a href="#">数码产品4</a></li> 
<li><a href="#">数码产品5</a></li> 
</ul> 
</ul> 
<img id="sort" src="Images/sort.gif" alt=""/> 
</li> 
</ul>

4.接下来是定义最重要的JQUERY代码了:
<script type="text/javascript"> 
$(function() { 
var curY; //获取所选项的Top值 
var curH; //获取所选项的Height值 
var curW; //获取所选项的Width值 
var srtY; //设置提示箭头的Top值 
var srtX; //设置提示箭头的Left值 
var objL; //获取当前对象 
/* 
*设置当前位置数值 
*参数obj为当前对象名称 
*/ 
function setInitValue(obj) { 
curY = obj.offset().top 
curH = obj.height(); 
curW = obj.width(); 
srtY = curY + (curH / 2) + "px"; //设置提示箭头的Top值 
srtX = curW - 5 + "px"; //设置提示箭头的Left值 
} 
$(".optn").mouseover(function() {//设置当前所选项的鼠标滑过事件 
objL = $(this); //获取当前对象 
setInitValue(objL); //设置当前位置 
var allY = curY - curH + "px"; //设置提示框的Top值 
objL.addClass("optnFocus"); //增加获取焦点时的样式 
objL.next("ul").show().css({ "top": allY, "left": curW }) //显示并设置提示框的坐标 
$("#sort").show().css({ "top": srtY, "left": srtX }); //显示并设置提示箭头的坐标 
}) 
.mouseout(function() {//设置当前所选项的鼠标移出事件 
$(this).removeClass("optnFocus"); //删除获取焦点时的样式 
$(this).next("ul").hide(); //隐藏提示框 
$("#sort").hide(); //隐藏提示箭头 
}) 
$(".tip").mousemove(function() { 
$(this).show(); //显示提示框 
objL = $(this).prev("li"); //获取当前的上级li对象 
setInitValue(objL); //设置当前位置 
objL.addClass("optnFocus"); //增加上级li对象获取焦点时的样式 
$("#sort").show().css({ "top": srtY, "left": srtX }); //显示并设置提示箭头的坐标 
}) 
.mouseout(function() { 
$(this).hide(); //隐藏提示框 
$(this).prev("li").removeClass("optnFocus"); //删除获取焦点时的样式 
$("#sort").hide(); //隐藏提示箭头 
}) 
}) 
</script>

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

运行的效果如下:

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

Javascript 相关文章推荐
读jQuery之八 包装事件对象
Jun 21 Javascript
在js文件中如何获取basePath处理js路径问题
Jul 10 Javascript
select多选 multiple的使用示例
Jun 16 Javascript
JCrop+ajaxUpload 图像切割上传的实例代码
Jul 20 Javascript
使用jQuery的toggle()方法对HTML标签进行显示、隐藏的方法(示例)
Sep 01 Javascript
Vue实现一个返回顶部backToTop组件
Jul 25 Javascript
html中通过JS获取JSON数据并加载的方法
Nov 30 Javascript
JS基于ES6新特性async await进行异步处理操作示例
Feb 02 Javascript
JS 事件机制完整示例分析
Jan 15 Javascript
vue实现简易图片左右旋转,上一张,下一张组件案例
Jul 31 Javascript
vue-router重写push方法,解决相同路径跳转报错问题
Aug 07 Javascript
SpringBoot+Vue 前后端合并部署的配置方法
Dec 30 Vue.js
jquery异步调用页面后台方法&amp;#8207;(asp.net)
Mar 01 #Javascript
jQuery获取文本节点之 text()/val()/html() 方法区别
Mar 01 #Javascript
jquery一句话全选/取消全选
Mar 01 #Javascript
基于jQuery的Tab选项框效果代码(插件)
Mar 01 #Javascript
jquery中实现标签切换效果的代码
Mar 01 #Javascript
IE图片缓存document.execCommand(&quot;BackgroundImageCache&quot;,false,true)
Mar 01 #Javascript
收集的10个免费的jQuery相册
Feb 26 #Javascript
You might like
symfony表单与页面实现技巧
2015/01/26 PHP
php使用正则表达式进行字符串搜索的方法
2015/03/23 PHP
Zend Framework教程之Zend_Db_Table表关联实例详解
2016/03/23 PHP
PHP表单验证内容是否为空的实现代码
2016/11/14 PHP
详解thinkphp实现excel数据的导入导出(附完整案例)
2016/12/29 PHP
onpropertypchange
2006/07/01 Javascript
可以将word转成html的js代码
2010/04/11 Javascript
TBCompressor js代码压缩
2011/01/05 Javascript
JS跨域代码片段
2012/08/30 Javascript
基于NodeJS的前后端分离的思考与实践(一)全栈式开发
2014/09/26 NodeJs
Javascript 赋值机制详解
2014/11/23 Javascript
jQuery中$.each使用详解
2015/01/29 Javascript
初识angular框架后的所思所想
2016/02/19 Javascript
简单几步实现返回顶部效果
2016/12/05 Javascript
懒加载实现的分页&amp;&amp;网站footer自适应
2016/12/21 Javascript
纯js实现的积木(div层)拖动功能示例
2017/07/19 Javascript
Python第三方库xlrd/xlwt的安装与读写Excel表格
2017/01/21 Python
python中的计时器timeit的使用方法
2017/10/20 Python
基于Python实现的ID3决策树功能示例
2018/01/02 Python
Python 调用 Outlook 发送邮件过程解析
2019/08/08 Python
Django xadmin开启搜索功能的实现
2019/11/15 Python
查看keras各种网络结构各层的名字方式
2020/06/11 Python
Python常用GUI框架原理解析汇总
2020/12/07 Python
python pillow库的基础使用教程
2021/01/13 Python
美国在线打印网站:Overnight Prints
2018/10/11 全球购物
美国室内和室外装饰花盆购物网站:ePlanters
2019/03/22 全球购物
男方父母婚礼答谢词
2014/01/25 职场文书
教育科研先进个人材料
2014/01/26 职场文书
《天游峰的扫路人》教学反思
2014/04/25 职场文书
大二学习计划书范文
2014/04/27 职场文书
竞聘自述材料
2014/08/25 职场文书
2014年煤矿工作总结
2014/11/24 职场文书
2014年度培训工作总结
2014/11/27 职场文书
优秀教师先进材料
2014/12/16 职场文书
Redis命令处理过程源码解析
2022/02/12 Redis
CSS的calc函数用法小结
2022/06/25 HTML / CSS