JS横向延时2级下拉菜单
来源:互联网 发布:js控制input不能输入 编辑:程序博客网 时间:2024/06/05 18:43
CSS样式:
body{ font-size: 12px; color: #333;}body, ul,h2{ margin:0;padding:0;}li { list-style:none;}a{ color: #333; text-decoration: none;}a:hover{ color: #f00;}#nav { width:100%; border:1px solid #000; margin-bottom:10px;}#nav li{ display:inline-block; margin:10px 20px; font-size: 16px; font-weight: bold;}.nav li { float:left; margin: 0 5px; font-size:12px;}.nav { position:absolute; border:1px solid #666; padding: 5px; display:none;}.n1 { left:0;}.n2 { left:80px;}.n3 { left:200px;}HTML部分:
<div class="menu"><ul id="nav"> <li><a href="#">首页</a></li> <li><a href="#">产品中心</a></li> <li><a href="#">关于我们</a></li></ul><ul class="nav n1"> <li><a href="#">首页二级菜单1</a></li> <li><a href="#">首页二级菜单2</a></li> <li><a href="#">首页二级菜单3</a></li></ul><ul class="nav n2"> <li><a href="#">产品中心二级菜单1</a></li> <li><a href="#">产品中心二级菜单2</a></li> <li><a href="#">产品中心二级菜单3</a></li> <li><a href="#">产品中心二级菜单4</a></li></ul><ul class="nav n3"> <li><a href="#">关于我们二级菜单1</a></li> <li><a href="#">关于我们二级菜单2</a></li></ul></div>JS部分:
window.onload = function(){var oUl = document.getElementById('nav');var aLi = oUl.getElementsByTagName('li');//获取一级菜单var aUl = document.getElementsByTagName('ul');//获取所有ulvar timer = null;var that = '';// 循环遍历所有的一级菜单for(var i = 0; i < aLi.length; i++){// 这里加1的原因是第0个li所对应的ul是第1个ulaLi[i].index = i + 1;// 鼠标经过,先关闭定时器,所有2级菜单隐藏,当前2级菜单显示aLi[i].onmouseover = function(){clearTimeout(timer);// 这里设置i = 1也是和上面一样,一一对应for(var i = 1; i< aUl.length; i++){aUl[i].style.display = 'none';}aUl[this.index].style.display = 'block';};// 鼠标移开时,先延时200毫秒,然后将2级菜单隐藏aLi[i].onmouseout = function(){//将当前索引值保存到that变量中that = this.index;timer = setTimeout(function(){aUl[that].style.display = 'none';},200);};}// 循环遍历所有的二级菜单【原理同上】for(var i = 1; i < aUl.length; i++){// 鼠标经过2级菜单,先清空定时器,当前显示aUl[i].onmouseover = function(){clearTimeout(timer);this.style.display = 'block';};// 鼠标移开2级菜单,延时200毫秒后再隐藏2级菜单aUl[i].onmouseout = function(){that = this;timer = setTimeout(function(){that.style.display = 'none';},200);}}};
预览效果:
0 0
- JS横向延时2级下拉菜单
- js小技巧3 横向下拉菜单
- 简单的横向下拉菜单js
- 横向,纵向下拉菜单
- 横向二级下拉菜单
- 下拉菜单(横向)
- 下拉菜单与横向菜单
- div+css横向下拉三级菜单(无js)
- JQuery之横向下拉菜单
- JS+CSS全力打造的一级横向滑动,二级竖向下拉综合菜单
- Js+CSS横向导航菜单
- js横向二级导航菜单
- jQuery实现横向纵向下拉菜单
- 【JQuery】——横向纵向下拉菜单
- 前端新人学习横向下拉菜单总结
- JS生成N级下拉菜单
- JS制作下拉菜单
- js特效-下拉菜单
- Unity3d热更新(二):资源打包AssetBundle
- python link to Orcal
- 安卓学习:(4)安卓LinearLayout布局
- Java编程思想学习心得(六)关系操作符的陷阱
- Unity3d热更新(三):更新资源流程
- JS横向延时2级下拉菜单
- 序列化和反序列化,怎么保证数据的正确性
- 日期、时间、星期
- C++通过DLL调用C#代码
- 自动垂直滚动(autoText)
- hdoj 5311 Hidden String 【dfs】
- 解决 jquery 在 eclipse 里面报错的最佳方案
- 侧滑菜单-SlidingMenu的使用
- Unity3d热更新(四):压缩文件