基于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 UI-Draggable 参数集合
Jan 10 Javascript
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之二
Dec 31 Javascript
js实现屏幕自适应局部代码分享
Jan 30 Javascript
JavaScript多图片上传案例
Sep 28 Javascript
js确认框confirm()用法实例详解
Jan 07 Javascript
Backbone.js框架中简单的View视图编写学习笔记
Feb 14 Javascript
Javascript之面向对象--接口
Dec 02 Javascript
浅谈Angular6的服务和依赖注入
Jun 27 Javascript
Bootstrap Fileinput 4.4.7文件上传实例详解
Jul 25 Javascript
vue.js的状态管理vuex中store的使用详解
Nov 08 Javascript
解决React在安装antd之后出现的Can't resolve './locale'问题(推荐)
May 03 Javascript
vue项目中使用rem,在入口文件添加内容操作
Nov 11 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
adodb与adodb_lite之比较
2006/12/31 PHP
php实现jQuery扩展函数
2009/10/30 PHP
让php处理图片变得简单 基于gb库的图片处理类附实例代码下载
2011/05/17 PHP
php中require和require_once的区别说明
2014/02/27 PHP
原生javascript实现DIV拖拽并计算重复面积
2015/01/02 Javascript
JS实现控制表格行文本对齐的方法
2015/03/30 Javascript
详解JavaScript ES6中的模板字符串
2015/07/28 Javascript
H5移动端适配 Flexible方案
2016/10/24 Javascript
Nodejs进阶:基于express+multer的文件上传实例
2016/11/21 NodeJs
ajax 提交数据到后台jsp页面及页面跳转问题
2017/01/19 Javascript
JS 插件dropload下拉刷新、上拉加载使用小结
2017/04/13 Javascript
Vue组件化开发思考
2018/02/02 Javascript
在vue中使用css modules替代scroped的方法
2018/03/10 Javascript
Webpack中雪碧图插件使用详解
2018/05/25 Javascript
Vee-validate 父组件获取子组件表单校验结果的实例代码
2019/05/20 Javascript
vue中利用Promise封装jsonp并调取数据
2019/06/18 Javascript
python列表与元组详解实例
2013/11/01 Python
python算法表示概念扫盲教程
2017/04/13 Python
Python FTP两个文件夹间的同步实例代码
2018/05/25 Python
使用Template格式化Python字符串的方法
2019/01/22 Python
python retrying模块的使用方法详解
2019/09/25 Python
Django集成MongoDB实现过程解析
2020/12/01 Python
Python实现京东抢秒杀功能
2021/01/25 Python
python上下文管理器异常问题解决方法
2021/02/07 Python
详解解决jupyter不能使用pytorch的问题
2021/02/18 Python
详解CSS3中强大的filter(滤镜)属性
2017/06/29 HTML / CSS
详解HTML5中垂直上下居中的解决方案
2017/12/20 HTML / CSS
哥德堡通行证:Gothenburg Pass
2019/12/09 全球购物
医学生求职自荐信
2013/10/25 职场文书
园林施工员岗位职责
2013/12/11 职场文书
迎新晚会主持词
2014/03/24 职场文书
教师师德考核自我评价
2014/09/13 职场文书
给老师的一封感谢信
2015/01/20 职场文书
感恩主题班会教案
2015/08/12 职场文书
2017元旦、春节期间廉洁自律承诺书
2016/03/25 职场文书
zabbix自定义监控nginx状态实现过程
2021/11/01 Servers