基于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 相关文章推荐
js String对象中常用方法小结(字符串操作)
Jan 27 Javascript
For循环中分号隔开的3部分的执行顺序探讨
May 27 Javascript
javascript实现表单提交后,提交按钮不可用的方法
Apr 18 Javascript
基于Jquery实现仿百度百科右侧导航代码附源码下载
Nov 27 Javascript
简介AngularJS中$http服务的用法
Feb 06 Javascript
Bootstrap编写一个兼容主流浏览器的受众巨幕式风格页面
Jul 01 Javascript
jQuery中的insertBefore(),insertAfter(),after(),before()区别介绍
Sep 01 Javascript
js实现HashTable(哈希表)的实例分析
Nov 21 Javascript
EasyUI为Numberbox添加blur事件的方法
Mar 05 Javascript
Vue组件的使用及个人理解与介绍
Feb 09 Javascript
vue实现表单录入小案例
Sep 27 Javascript
Node.js控制台彩色输出的方法与原理实例详解
Dec 01 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生成静态页面教程
2012/01/10 PHP
thinkphp中连接oracle时封装方法无法用的解决办法
2013/06/17 PHP
php打开远程文件的方法和风险及解决方法
2013/11/12 PHP
Laravel 5框架学习之表单验证
2015/04/08 PHP
php结合正则批量抓取网页中邮箱地址
2015/05/19 PHP
PHP中foreach()用法汇总
2015/07/02 PHP
Laravel5.5 实现后台管理登录的方法(自定义用户表登录)
2019/09/30 PHP
JavaScript与Div对层定位和移动获得坐标的实现代码
2010/09/08 Javascript
js正文内容高亮效果的实现方法
2013/06/30 Javascript
JS将秒换成时分秒实现代码
2013/09/03 Javascript
Bootstrap基本插件学习笔记之Tooltip提示工具(18)
2016/12/08 Javascript
ES6学习之变量的解构赋值
2017/02/12 Javascript
CodeMirror js代码加亮使用总结
2017/03/25 Javascript
angular使用post、get向后台传参的问题实例
2017/05/27 Javascript
Javascript中this关键字指向问题的测试与详解
2017/08/11 Javascript
基于zepto.js实现登录界面
2017/10/09 Javascript
js定时器+简单的动画效果实例
2017/11/10 Javascript
nodejs之koa2请求示例(GET,POST)
2018/08/07 NodeJs
Vue实现手机扫描二维码预览页面效果
2020/05/28 Javascript
js实现小球在页面规定的区域运动
2020/06/16 Javascript
ant design vue 表格table 默认勾选几项的操作
2020/10/31 Javascript
在Docker上部署Python的Flask框架的教程
2015/04/08 Python
python简单分割文件的方法
2015/07/30 Python
详解使用python crontab设置linux定时任务
2016/12/08 Python
Python实现简单过滤文本段的方法
2017/05/24 Python
python web.py开发httpserver解决跨域问题实例解析
2018/02/12 Python
使用Python搭建虚拟环境的配置方法
2018/02/28 Python
学生信息管理系统python版
2018/10/17 Python
python列表推导式操作解析
2019/11/26 Python
python 项目目录结构设置
2020/02/14 Python
Python3基于plotly模块保存图片表格
2020/08/03 Python
HTML5中Canvas与SVG的画图原理比较
2013/01/16 HTML / CSS
教师个人自我鉴定
2014/02/08 职场文书
初一学生期末评语
2014/04/24 职场文书
Linux中sftp常用命令整理
2022/06/28 Servers