基于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 相关文章推荐
DOM下的节点属性和操作小结
May 14 Javascript
JavaScript 异步调用框架 (Part 5 - 链式实现)
Aug 04 Javascript
jquery操作select详解(取值,设置选中)
Feb 07 Javascript
Js与Jq 获取页面元素值的方法和差异对比
Apr 30 Javascript
Bootstrap零基础入门教程(二)
Jul 18 Javascript
浅谈javascript alert和confirm的美化
Dec 15 Javascript
jQuery.Form上传文件操作
Feb 05 Javascript
利用jquery去掉时光轴头尾部线条的方法实例
Jun 16 jQuery
vue+webpack实现异步组件加载的方法
Feb 03 Javascript
了解在JavaScript中将值转换为字符串的5种方法
Jun 06 Javascript
Vue单文件组件开发实现过程详解
Jul 30 Javascript
绘制微信小程序验证码功能的实例代码
Jan 05 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
虹吸式咖啡壶操作
2021/03/03 冲泡冲煮
PHP里的中文变量说明
2011/07/23 PHP
php文件操作实例代码
2012/05/10 PHP
深入PHP curl参数的详解
2013/06/17 PHP
五款PHP代码重构工具推荐
2014/10/14 PHP
教你在PHPStorm中配置Xdebug
2015/07/27 PHP
PHP递归的三种常用方式
2019/02/28 PHP
javascript的对话框详解与参数
2007/03/08 Javascript
一个收集图片的bookmarlet(js 刷新页面中的图片)
2010/05/27 Javascript
基于jquery实现漂亮的动态信息提示效果
2011/08/02 Javascript
jQuery中json对象的复制方式介绍(数组及对象)
2013/06/08 Javascript
JavaScript访问字符串中单个字符的两种方法
2015/07/03 Javascript
JS动态添加iframe的代码
2015/09/14 Javascript
jQuery给div,Span, a ,button, radio 赋值与取值
2016/06/24 Javascript
JQuery 进入页面默认给已赋值的复选框打钩
2017/03/23 jQuery
jQuery实现的点击标题文字切换字体效果示例【测试可用】
2018/04/26 jQuery
seajs和requirejs模块化简单案例分析
2019/08/26 Javascript
解决vue打包后刷新页面报错:Unexpected token
2019/08/27 Javascript
vue+layui实现select动态加载后台数据的例子
2019/09/20 Javascript
基于node+vue实现简单的WebSocket聊天功能
2020/02/01 Javascript
微信小程序学习总结(三)条件、模板、文件引用实例分析
2020/06/04 Javascript
Python使用BeautifulSoup库解析HTML基本使用教程
2016/03/31 Python
tensorflow实现对图片的读取的示例代码
2018/02/12 Python
python 使用sys.stdin和fileinput读入标准输入的方法
2018/10/17 Python
python实现串口自动触发工作的示例
2019/07/02 Python
python实现两个一维列表合并成一个二维列表
2019/12/02 Python
keras自定义回调函数查看训练的loss和accuracy方式
2020/05/23 Python
详解Django ORM引发的数据库N+1性能问题
2020/10/12 Python
详解WebSocket跨域问题解决
2018/08/06 HTML / CSS
质量承诺书格式
2014/05/20 职场文书
幼儿园教师师德表现自我评价
2015/03/05 职场文书
委托收款证明
2015/06/23 职场文书
Axios取消重复请求的方法实例详解
2021/06/15 Javascript
数据库之SQL技巧整理案例
2021/07/07 SQL Server
Python 中的Sympy详细使用
2021/08/07 Python
服务器SVN搭建图文安装过程
2022/06/21 Servers