JS实现类似百叶窗下拉菜单效果


Posted in Javascript onDecember 30, 2016

废话不多说了,直接给大家贴代码了,具体代码如下所示:

function leftmove(){
  var oLeft_ul=document.getElementById('left_ul');
  var aLeft_li=oLeft_ul.children;//获得左侧ul下的第一个子集li
  var aleft_ul_hidden=oLeft_ul.getElementsByTagName('ul');
  var aleft_span_hidden=oLeft_ul.getElementsByTagName('span');
  var arr=[];
  var span_arr=[];
  getclassname(aleft_ul_hidden,'cl_hidden',arr)
  getclassname(aleft_span_hidden,'sj',span_arr);
  for(var i=0;i<aLeft_li.length;i++){
    aLeft_li[i].index=i;
    aLeft_li[i].onmouseenter=function(){
      for(var j=0;j<aLeft_li.length;j++){
        move(aLeft_li[j],{height:40});
        span_arr[j].style.borderColor='#f2f2f2 #f2f2f2 #f2f2f2 #666';
        span_arr[j].style.top='13px';
        span_arr[j].style.left='8px';
      }
      var ul_height=arr[this.index].children.length*40
      move(aLeft_li[this.index],{height:40+ul_height});
      span_arr[this.index].style.borderColor='#666 #0ad #0ad #0ad';
      span_arr[this.index].style.top='17px';
      span_arr[this.index].style.left='6px';
    };
    aLeft_li[i].onmouseleave=function(){
      for(var j=0;j<aLeft_li.length;j++){
        move(aLeft_li[j],{height:40});
        span_arr[j].style.borderColor='#f2f2f2 #f2f2f2 #f2f2f2 #666';
        span_arr[j].style.top='13px';
        span_arr[j].style.left='8px';
      }
    };
    arr[i].onmouseover=function(){
      for(var i=0;i<arr.length;i++){
        span_arr[i].style.borderColor='#f2f2f2 #f2f2f2 #f2f2f2 #666';
        span_arr[i].style.top='13px';
        span_arr[i].style.left='8px';
      }
      span_arr[this.parentNode.index].style.borderColor='#666 #f2f2f2 #f2f2f2 #f2f2f2';
      span_arr[this.parentNode.index].style.top='17px';
      span_arr[this.parentNode.index].style.left='6px';
    };
    arr[i].onmouseout=function(){
      for(var i=0;i<arr.length;i++){
        span_arr[i].style.borderColor='#f2f2f2 #f2f2f2 #f2f2f2 #666';
        span_arr[i].style.top='13px';
        span_arr[i].style.left='8px';
      }
      span_arr[this.parentNode.index].style.borderColor='#666 #0ad #0ad #0ad';
      span_arr[this.parentNode.index].style.top='17px';
      span_arr[this.parentNode.index].style.left='6px';
    };
  }
}
leftmove();
Javascript 相关文章推荐
使用户点击后退按钮使效三行代码
Jul 07 Javascript
JS连连看源码完美注释版(推荐)
Dec 09 Javascript
jQuery模拟点击A标记示例参考
Apr 17 Javascript
JS使用oumousemove和oumouseout动态改变图片显示的方法
Mar 31 Javascript
Javascript设计模式理论与编程实战之简单工厂模式
Nov 03 Javascript
Javascript实现图片轮播效果(二)图片序列节点的控制实现
Feb 17 Javascript
JavaScript的字符串方法汇总
Jul 31 Javascript
折叠菜单及选择器的运用
Feb 03 Javascript
BootStrap Datepicker 插件修改为默认中文的实现方法
Feb 10 Javascript
JS简单判断字符在另一个字符串中出现次数的2种常用方法
Apr 20 Javascript
jQuery实现点击DIV同时点击CheckBox,并为DIV上背景色的实例
Dec 18 jQuery
vue组件挂载到全局方法的示例代码
Aug 02 Javascript
BootStrap实现轮播图效果(收藏)
Dec 30 #Javascript
jQuery Ajax 实现在html页面实时显示用户登录状态
Dec 30 #Javascript
javascript实现简单的可随机变色网页计算器示例
Dec 30 #Javascript
ionic2 tabs使用 Modal底部tab弹出框
Dec 30 #Javascript
JS实现改变HTML上文字颜色和内容的方法
Dec 30 #Javascript
jQuery中页面返回顶部的方法总结
Dec 30 #Javascript
jQuery中select与datalist制作下拉菜单时的区别浅析
Dec 30 #Javascript
You might like
人大复印资料处理程序_输入篇
2006/10/09 PHP
php 目录遍历、删除 函数的使用介绍
2013/04/28 PHP
Yii2中hasOne、hasMany及多对多关联查询的用法详解
2017/02/15 PHP
PHP实现生成推广海报的方法详解
2018/03/14 PHP
JavaScript 浏览器验证代码(来自discuz)
2010/07/17 Javascript
xml文档转换工具,附图表例子(hta)
2010/11/17 Javascript
JavaScript 创建运动框架的实现代码
2013/05/08 Javascript
解析jQuery的三种bind/One/Live事件绑定使用方法
2013/12/30 Javascript
javascript中的nextSibling使用陷(da)阱(keng)
2014/05/05 Javascript
Javascript动态创建表格及删除行列的方法
2015/05/15 Javascript
JS设置cookie、读取cookie
2016/02/24 Javascript
Bootstrap零基础入门教程(二)
2016/07/18 Javascript
JavaScript中 ES6 generator数据类型详解
2016/08/11 Javascript
深入了解JavaScript的逻辑运算符(与、或)
2016/12/20 Javascript
JavaScript利用闭包实现模块化
2017/01/13 Javascript
JS去除字符串中空格的方法
2017/02/14 Javascript
Angular.js项目中使用gulp实现自动化构建以及压缩打包详解
2017/07/19 Javascript
基于Jquery Ajax type的4种类型(详解)
2017/08/02 jQuery
详解AngularJS跨页面传值(ui-router)
2017/08/23 Javascript
layui框架table 数据表格的方法级渲染详解
2018/08/19 Javascript
Django+vue跨域问题解决的详细步骤
2019/01/20 Javascript
详解如何在JS代码中消灭for循环
2019/12/11 Javascript
Python写的英文字符大小写转换代码示例
2015/03/06 Python
Python简单实现两个任意字符串乘积的方法示例
2018/04/12 Python
Django结合ajax进行页面实时更新的例子
2019/08/12 Python
详解tensorflow之过拟合问题实战
2020/11/01 Python
进程的查看和调度分别使用什么命令
2013/12/14 面试题
大家检讨书5000字
2014/02/03 职场文书
学生党员的自我评价范文
2014/03/01 职场文书
承德避暑山庄导游词
2015/02/03 职场文书
大学生自荐信怎么写
2015/03/26 职场文书
幼儿教师继续教育培训心得体会
2016/01/19 职场文书
只用Python就可以制作的简单词云
2021/06/07 Python
python中的装饰器该如何使用
2021/06/18 Python
使用Python拟合函数曲线
2022/04/14 Python
Python 统计序列中元素的出现频度
2022/04/26 Python