基于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 相关文章推荐
JavaScript 检测浏览器和操作系统的脚本
Dec 26 Javascript
RGB颜色值转HTML十六进制(HEX)代码的JS函数
Apr 25 Javascript
javascript使用eval或者new Function进行语法检查
Oct 16 Javascript
JavaScript函数模式详解
Nov 07 Javascript
JavaScript数据类型学习笔记
Jan 25 Javascript
JavaScript 弹出子窗体并返回结果到父窗体的实现代码
May 28 Javascript
在js中做数字字符串补0(js补零)
Mar 25 Javascript
Vue中计算属性computed的示例解读
Jul 26 Javascript
JS二分查找算法详解
Nov 01 Javascript
angularJs 表格添加删除修改查询方法
Feb 27 Javascript
vue2.0 自定义组件的方法(vue组件的封装)
Jun 05 Javascript
如何让微信小程序页面之间的通信不再变困难
Jun 03 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写的带缓存数据功能的mysqli类
2012/09/06 PHP
解析thinkphp中的M()与D()方法的区别
2013/06/22 PHP
PHP结合Vue实现滚动底部加载效果
2017/12/17 PHP
PHP cookie与session会话基本用法实例分析
2019/11/18 PHP
JS input文本框禁用右键和复制粘贴功能的代码
2010/04/15 Javascript
jquer之ajaxQueue简单实现代码
2011/09/15 Javascript
Javascript Ajax异步读取RSS文档具体实现
2013/12/12 Javascript
Javascript的严格模式strict mode详细介绍
2014/06/06 Javascript
js动态创建标签示例代码
2014/06/09 Javascript
详解原生JavaScript实现jQuery中AJAX处理的方法
2016/05/10 Javascript
js提示框替代系统alert,自动关闭alert对话框的实现方法
2016/11/07 Javascript
jquery表单插件form使用方法详解
2017/01/20 Javascript
jquery实现拖动效果(代码分享)
2017/01/25 Javascript
微信小程序request请求后台接口php的实例详解
2017/09/20 Javascript
解决vue无法设置滚动位置的问题
2018/10/07 Javascript
Vue源码探究之状态初始化
2018/11/14 Javascript
Layui 数据表格批量删除和多条件搜索的实例
2019/09/04 Javascript
JavaScript数值类型知识汇总
2019/11/17 Javascript
jquery实现商品sku多属性选择功能(商品详情页)
2019/12/20 jQuery
在Python中使用cookielib和urllib2配合PyQuery抓取网页信息
2015/04/25 Python
python将ansible配置转为json格式实例代码
2017/05/15 Python
pandas apply 函数 实现多进程的示例讲解
2018/04/20 Python
对python抓取需要登录网站数据的方法详解
2018/05/21 Python
解决pyinstaller打包exe文件出现命令窗口一闪而过的问题
2018/10/31 Python
django 通过URL访问上传的文件方法
2019/07/28 Python
Python中调用其他程序的方式详解
2019/08/06 Python
python cv2在验证码识别中应用实例解析
2019/12/25 Python
python删除指定列或多列单个或多个内容实例
2020/06/28 Python
一文详述 Python 中的 property 语法
2020/09/01 Python
详解tf.device()指定tensorflow运行的GPU或CPU设备实现
2021/02/20 Python
意大利奢侈品购物网站:Deliberti
2019/10/08 全球购物
小学教师师德演讲稿
2014/05/06 职场文书
调研座谈会发言材料
2014/08/23 职场文书
十八大宣传标语
2014/10/09 职场文书
教师个人年度总结
2015/02/11 职场文书
spring 项目实现限流方法示例
2022/07/15 Java/Android