基于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 相关文章推荐
效率高的Javscript字符串替换函数的benchmark
Aug 02 Javascript
IE下Ajax缓存问题的快速解决方法(get方式)
Jan 09 Javascript
完善的jquery处理机制
Feb 21 Javascript
JQuery validate插件验证用户注册信息
May 11 Javascript
浅谈DOM的操作以及性能优化问题-重绘重排
Jan 08 Javascript
理解javascript async的用法
Aug 22 Javascript
深入浅析javascript继承体系
Oct 23 Javascript
JavaScript基础心法 深浅拷贝(浅拷贝和深拷贝)
Mar 05 Javascript
微信小程序实现提交input信息到后台的方法示例
Jan 19 Javascript
Vue 一键清空表单的实现方法
Feb 07 Javascript
如何利用JS将手机号中间四位变成*号
Sep 29 Javascript
小程序wx.getUserProfile接口的具体使用
Jun 02 Javascript
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
用PHP调用数据库的存贮过程
2006/10/09 PHP
PHP Squid中可缓存的动态网页设计
2008/09/17 PHP
从刷票了解获得客户端IP的方法
2015/09/21 PHP
PHP实现批量上传单个文件
2015/12/29 PHP
PHP数组array类常见操作示例
2020/05/15 PHP
JQuery操作三大控件(下拉,单选,复选)的方法
2013/08/06 Javascript
Google官方支持的NodeJS访问API,提供后台登录授权
2014/07/29 NodeJs
iScroll.js 使用方法参考
2016/05/16 Javascript
js中遍历对象的属性和值的方法
2016/07/27 Javascript
使用Vue.js创建一个时间跟踪的单页应用
2016/11/28 Javascript
JavaScript判断输入是否为数字类型的方法总结
2017/09/28 Javascript
jQuery NProgress.js加载进度插件的简单使用方法
2018/01/31 jQuery
用npm安装vue和vue-cli,并使用webpack创建项目的方法
2018/09/28 Javascript
前端Electron新手入门教程详解
2019/06/21 Javascript
python通过scapy获取局域网所有主机mac地址示例
2014/05/04 Python
python多进程中的内存复制(实例讲解)
2018/01/05 Python
浅谈tensorflow1.0 池化层(pooling)和全连接层(dense)
2018/04/27 Python
使用python中的in ,not in来检查元素是不是在列表中的方法
2018/07/06 Python
Python实现定制自动化业务流量报表周报功能【XlsxWriter模块】
2019/03/11 Python
python tkinter实现彩球碰撞屏保
2019/07/30 Python
python语言time库和datetime库基本使用详解
2020/12/25 Python
广州喜创信息技术有限公司JAVA软件工程师笔试题
2012/10/17 面试题
手术室护士自我鉴定
2013/10/14 职场文书
英文版餐饮业求职信
2013/10/18 职场文书
养殖行业的创业计划书
2014/01/05 职场文书
检举信的格式及范文
2014/04/04 职场文书
物业管理专业自荐信
2014/07/01 职场文书
法律专业大学生职业生涯规划书:向目标一步步迈进
2014/09/22 职场文书
文员转正自我鉴定怎么写
2014/09/29 职场文书
2015年度学校卫生工作总结
2015/05/12 职场文书
呼啸山庄读书笔记
2015/06/29 职场文书
2015年治庸问责工作总结
2015/07/27 职场文书
高中历史教学反思
2016/02/19 职场文书
解决python3安装pandas出错的问题
2021/05/20 Python
深入理解Pytorch微调torchvision模型
2021/11/11 Python
交互式可视化js库gojs使用介绍及技巧
2022/02/18 Javascript