DIV菜单层实现代码


Posted in Javascript onNovember 19, 2010

他便给我截了个图是,QQ商城的分类菜单,效果如下:
DIV菜单层实现代码
我看了一下,咦!咱们这博客园也是这种呀!我自己之前也没做过这种效果,正好自己试试!(我不是做美工的,不过到js略懂罢了!)
一、分析:
1,右边大分类肯定是一个层下面用divMenuContent表示
2,左边鼠标移上去的那个应该也是个层,下面用divMenuItem表示
问题:怎么样表现过如图的样子呢?左边和右边看起来是一体的!于是想到divMenuItem的右边为none,而且z轴高于divMenuContent,让它正好压在divMenuContent的边框上!
下面是两个层的样式:

#divMenuItem 
{ 
position:absolute; 
z-index:99; 
width:147px; 
height:25px; 
border:3px solid #963; 
border-right:0px; 
background-color:#FC9; 
display:none; 
} 
#divMenuContent 
{ 
display:none; 
position:absolute; 
z-index:98; 
width:200px; 
height:505px; 
border:3px solid #963; 
background-color:#FC9; 
}

然后布局一个页面测试用:
<body> 
<br /> 
<br /> 
<br /> 
<ul class="menu" id="menu"> 
<li>aaaaaaaaaaaaa</li> 
<li>bbbbbbbbbbbbb</li> 
<li>cccccccdccccc</li> 
<li>ddddddddddddd</li> 
<li>eeeeeeeeeeeee</li> 
<li>fffffffffffff</li> 
<li>ggggggggggggg</li> 
<li>hhhhhhhhhhhhh</li> 
</ul> 
<div id="divMenuItem"></div> 
<div id="divMenuContent"></div> 
</body>

简单设置一下menu的样式:
body 
{ 
margin:0px; 
padding:0px; 
} 
.menu 
{ 
list-style-type:none; 
float:left; 
border:1px solid green; 
width:150px; 
} 
.menu li 
{ 
height:25px; 
background-color:#CCC; 
border:1px solid red; 
}

主要实现:
$("#menu li").mouseenter(function() 
{ 
var offset=$(this).offset(); 
$("#divMenuItem") 
.offset({ 
top:offset.top,left:offset.left 
}) 
.html($(this).html()) 
.show() 
$("#divMenuContent") 
.offset({ 
top:offset.top,left:offset.left+$(this).width()-1 
}) 
.show() 
})

这里主要就是定位问题了!逻辑上是对的,可发现除一次移上去显示正常外,以后每移上的第一个都有点错位!这里也是一直没搞明白是怎么回事!后来在show()后又offset()了一下就好了,希望高人指明。
修改后的全部JS如下:
$(function(){ 
$("#divMenuItem,#divMenuContent").mouseout(function(e) 
{ 
if($(e.toElement).parent().attr("id")!="menu" && $(e.toElement).attr("id")!="divMenuContent") 
{ 
$("#divMenuItem").hide(); 
$("#divMenuContent").hide(); 
} 
}) 
$("#menu li").mouseenter(function() 
{ 
var offset=$(this).offset(); 
$("#divMenuItem") 
.offset({ 
top:offset.top,left:offset.left 
}) 
.html($(this).html()) 
.show() 
.offset({ 
top:offset.top,left:offset.left 
}); 
$("#divMenuContent") 
.offset({ 
top:offset.top,left:offset.left+$(this).width()-1 
}) 
.show() 
/* .offset({ 
top:offset.top,left:offset.left+$(this).width()-1 
});*/ 
.offset({ 
top:$("#menu li").first().offset().top,left:offset.left+$(this).width()-1 
}); 
}) 
})

里面有一块注释,offset()那块,它和下面的offset()是两个效果,现在的效果图:

DIV菜单层实现代码

 

注释部分换一下效果图:

DIV菜单层实现代码

 

效果已在:IE6,7,8,chrome中测试通过!
代码打包下载/201011/yuanma/menu_jquery1.rar

Javascript 相关文章推荐
js 多浏览器分别判断代码
Apr 01 Javascript
简单的Jquery遮罩层代码实例
Nov 14 Javascript
bootstrap table 服务器端分页例子分享
Feb 10 Javascript
jQuery中的select操作详解
Nov 29 Javascript
Bootstrap源码学习笔记之bootstrap进度条
Dec 24 Javascript
JavaScript手风琴页面制作
May 17 Javascript
bootstrap table插件的分页与checkbox使用详解
Jul 23 Javascript
Vue2 模板template的四种写法总结
Feb 23 Javascript
js中switch语句的学习笔记
Mar 25 Javascript
基于Vue CSR的微前端实现方案实践
May 27 Javascript
js实现轮播图特效
May 28 Javascript
vue 如何使用递归组件
Oct 23 Javascript
jQuery 定时局部刷新(setInterval)
Nov 19 #Javascript
基于jquery的跨域调用文件
Nov 19 #Javascript
jquery.cvtooltip.js 基于jquery的气泡提示插件
Nov 19 #Javascript
jQuery lazyload 的重复加载错误以及修复方法
Nov 19 #Javascript
JQuery 选择和过滤方法代码总结
Nov 19 #Javascript
基于jquery的一个OutlookBar类,动态创建导航条
Nov 19 #Javascript
非阻塞动态加载javascript广告实现代码
Nov 17 #Javascript
You might like
php集成动态口令认证
2016/07/21 PHP
php制作基于xml的RSS订阅源功能示例
2017/02/08 PHP
js 调整select 位置的函数
2008/02/21 Javascript
读jQuery之六 缓存数据功能介绍
2011/06/21 Javascript
javascript实用小函数使用介绍
2013/11/11 Javascript
浮动的div自适应居中显示的js代码
2013/12/23 Javascript
js动态往表格的td中添加图片并注册事件
2014/06/12 Javascript
js和jquery中循环的退出和继续学习记录
2014/09/06 Javascript
详解JavaScript中Date.UTC()方法的使用
2015/06/12 Javascript
8 行 Node.js 代码实现代理服务器
2016/12/05 Javascript
jquery分页插件pagination使用教程
2018/10/23 jQuery
详解js中let与var声明变量的区别
2020/04/05 Javascript
layui实现三级联动效果
2019/07/26 Javascript
Layui数据表格跳转到指定页的实现方法
2019/09/05 Javascript
js+canvas实现画板功能
2020/09/13 Javascript
JavaScript使用setTimeout实现倒计时效果
2021/02/19 Javascript
python使用7z解压apk包的方法
2015/04/18 Python
Python使用time模块实现指定时间触发器示例
2017/05/18 Python
Python排序搜索基本算法之希尔排序实例分析
2017/12/09 Python
Python PyQt4实现QQ抽屉效果
2018/04/20 Python
Pycharm之快速定位到某行快捷键的方法
2019/01/20 Python
详细介绍Python进度条tqdm的使用
2019/07/31 Python
使用OpenCV实现道路车辆计数的使用方法
2020/07/15 Python
python之随机数函数的实现示例
2020/12/30 Python
互动出版网:专业书籍
2017/03/21 全球购物
积极分子思想汇报
2014/01/04 职场文书
学生手册评语
2014/05/05 职场文书
幼儿园安全责任书范本
2014/07/24 职场文书
迎新春趣味活动方案
2014/08/24 职场文书
小学生国庆节演讲稿
2014/09/05 职场文书
领导班子四风查摆对照检查材料思想汇报
2014/10/05 职场文书
晋江市人民政府党组群众路线教育实践活动整改方案
2014/10/25 职场文书
2019朋友新婚祝福语精选
2019/10/10 职场文书
golang 在windows中设置环境变量的操作
2021/04/29 Golang
Java 多态分析
2022/04/26 Java/Android
Python+DeOldify实现老照片上色功能
2022/06/21 Python