基于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不能跳转到上一页面的问题解决方法
Mar 01 Javascript
javascript新建标签,判断键盘输入,以及判断焦点(示例代码)
Nov 25 Javascript
javascript异步编程的4种方法
Feb 19 Javascript
JavaScript判断字符长度、数字、Email、电话等常用判断函数分享
Apr 01 Javascript
检查表单元素的值是否为空的实例代码
Jun 16 Javascript
使用do...while的方法输入一个月中所有的周日(实例代码)
Jul 22 Javascript
webpack+vue.js实现组件化详解
Oct 12 Javascript
vue项目中添加单元测试的方法
Jul 21 Javascript
详解微信小程序网络请求接口封装实例
May 02 Javascript
Jquery $.map使用方法实例详解
Sep 01 jQuery
react使用antd的上传组件实现文件表单一起提交功能(完整代码)
Jun 29 Javascript
Vue组件更新数据v-model不生效的解决
Apr 02 Vue.js
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 Undefined index报错的修复方法
2011/07/17 PHP
使用php计算排列组合的方法
2013/11/13 PHP
laravel实现上传图片,并且制作缩略图,按照日期存放的代码
2019/10/16 PHP
Javascript Select操作大集合
2009/05/26 Javascript
javascript中删除指定数组中指定的元素的代码
2011/02/12 Javascript
深入了解javascript中的prototype与继承
2013/04/14 Javascript
JavaScript cookie的设置获取删除详解
2014/02/11 Javascript
jquery弹窗插件colorbox绑定动态生成元素的方法
2014/06/20 Javascript
JavaScript eval() 函数介绍及应用示例
2014/07/29 Javascript
jQuery实现鼠标划过展示大图的方法
2015/03/09 Javascript
BootStrap初学者对弹出框和进度条的使用感觉
2016/06/27 Javascript
node.js与C语言 实现遍历文件夹下最大的文件,并输出路径,大小
2017/01/20 Javascript
关于Vue背景图打包之后访问路径错误问题的解决
2017/11/03 Javascript
通过vue-cli3构建一个SSR应用程序的方法
2018/09/13 Javascript
nodejs中express入门和基础知识点学习
2018/09/13 NodeJs
基于vue和react的spa进行按需加载的实现方法
2018/09/29 Javascript
vue进入页面时不在顶部,检测滚动返回顶部按钮问题及解决方法
2019/10/30 Javascript
H5+css3+js搭建带验证码的登录页面
2020/10/11 Javascript
在Python中处理字符串之isdecimal()方法的使用
2015/05/20 Python
Python中装饰器兼容加括号和不加括号的写法详解
2017/07/05 Python
django反向解析和正向解析的方式
2018/06/05 Python
Django为窗体加上防机器人的验证码功能过程解析
2019/08/14 Python
python实现mask矩阵示例(根据列表所给元素)
2020/07/30 Python
python操作链表的示例代码
2020/09/27 Python
纯CSS打造(无图像无js)的非常流行的讲话(语音)气泡效果
2012/12/28 HTML / CSS
可能这些是你想要的H5软键盘兼容方案(小结)
2019/04/23 HTML / CSS
Fresh馥蕾诗英国官网:法国LVMH集团旗下高端天然护肤品牌
2018/11/01 全球购物
电大自我鉴定范文
2013/10/01 职场文书
简历中自我评价范文3则
2013/12/14 职场文书
秋季红领巾广播稿
2014/01/27 职场文书
司法局群众路线教育实践活动开展情况总结
2014/10/25 职场文书
2014年连锁店圣诞节活动方案
2014/12/09 职场文书
公司会议开幕词
2015/01/29 职场文书
健身房被搭讪?用python写了个小米计时器助人为乐
2021/06/08 Python
教你使用一行Python代码玩遍童年的小游戏
2021/08/23 Python
CentOS下安装Jenkins的完整步骤
2022/04/07 Servers