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 相关文章推荐
用js脚本控制asp.net下treeview的NodeCheck的实现代码
Mar 02 Javascript
使用jQuery.Validate进行客户端验证(初级篇) 不使用微软验证控件的理由
Jun 28 Javascript
document.getElementById的简写方式(获取id对象的简略写法)
Sep 10 Javascript
一个简单的JS鼠标悬停特效具体方法
Jun 17 Javascript
js如何获取object类型里的键值
Feb 18 Javascript
PHP抓取HTTPS内容和错误处理的方法
Sep 30 Javascript
详解Angular2组件之间如何通信
Jun 22 Javascript
element-ui循环显示radio控件信息的方法
Aug 24 Javascript
微信小程序云开发如何使用云函数生成二维码
May 18 Javascript
微信小程序实现锚点跳转
Nov 23 Javascript
在Vue中使用mockjs代码实例
Nov 25 Vue.js
vue实现滚动鼠标滚轮切换页面
Dec 13 Vue.js
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
PHP取进制余数函数代码
2012/01/19 PHP
解决ThinkPHP下使用上传插件Uploadify浏览器firefox报302错误的方法
2015/12/18 PHP
PHP读取XML格式文件的方法总结
2017/02/27 PHP
thinkPHP框架实现图像裁剪、缩放、加水印的方法
2017/03/14 PHP
laravel框架上传图片实现实时预览功能
2019/10/14 PHP
JavaScript国旗变换效果代码
2008/08/13 Javascript
javascript history对象(历史记录)使用方法(实现浏览器前进后退)
2014/01/07 Javascript
使用nodejs、Python写的一个简易HTTP静态文件服务器
2014/07/18 NodeJs
JavaScript中的Web worker多线程API研究
2014/12/06 Javascript
javascript每日必学之条件分支
2016/02/17 Javascript
javascript 数组去重复(在线去重工具)
2016/12/17 Javascript
jQuery实现的checkbox级联选择下拉菜单效果示例
2016/12/26 Javascript
vue2 如何实现div contenteditable=“true”(类似于v-model)的效果
2017/02/08 Javascript
vue基于mint-ui的城市选择3级联动的示例
2017/10/25 Javascript
vue中keep-alive的用法及问题描述
2018/05/15 Javascript
JS数组Object.keys()方法的使用示例
2019/06/05 Javascript
Vue设置长时间未操作登录自动到期返回登录页
2020/01/22 Javascript
go和python调用其它程序并得到程序输出
2014/02/10 Python
Django 实现下载文件功能的示例
2018/03/06 Python
cmd运行python文件时对结果进行保存的方法
2018/05/16 Python
Python实现模拟登录网易邮箱的方法示例
2018/07/05 Python
Django的用户模块与权限系统的示例代码
2019/07/24 Python
python 实现多线程下载m3u8格式视频并使用fmmpeg合并
2019/11/15 Python
Python 生成一个从0到n个数字的列表4种方法小结
2019/11/28 Python
HTML5利用约束验证API来检查表单的输入数据的代码实例
2016/12/20 HTML / CSS
浅谈HTML5 Web Worker的使用
2018/01/05 HTML / CSS
英国和世界各地预订便宜的酒店:LateRooms.com
2019/05/05 全球购物
意大利买卖二手奢侈品网站:LAMPOO
2020/06/03 全球购物
利用异或运算实现两个无符号数的加法运算
2013/12/20 面试题
销售员未完成销售业绩的检讨书
2014/10/12 职场文书
党校学习个人总结
2015/02/15 职场文书
商务司机岗位职责
2015/04/10 职场文书
Django debug为True时,css加载失败的解决方案
2021/04/24 Python
如何有效防止sql注入的方法
2021/05/25 SQL Server
django 认证类配置实现
2021/11/11 Python
Python OpenCV超详细讲解调整大小与图像操作的实现
2022/04/02 Python