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点击更换背景颜色或图片的实例代码
Jun 25 Javascript
javascript实现捕捉键盘上按下的键
May 05 Javascript
浅谈javascript原型链与继承
Jul 13 Javascript
基于Bootstrap重置输入框内容按钮插件
May 12 Javascript
VueJs路由跳转——vue-router的使用详解
Jan 10 Javascript
Node.js的特点详解
Feb 03 Javascript
详解angular笔记路由之angular-router
Sep 12 Javascript
js实现动态改变radio状态的方法
Feb 28 Javascript
Vue filter格式化时间戳时间成标准日期格式的方法
Sep 16 Javascript
深入理解移动前端开发之viewport
Oct 19 Javascript
解决ie11 SCRIPT5011:不能执行已释放Script的代码问题
May 05 Javascript
js实现随机点名程序
Sep 17 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
让你同时上传 1000 个文件 (二)
2006/10/09 PHP
PHP 得到根目录的 __FILE__ 常量
2008/07/23 PHP
探讨:如何使用PHP实现计算两个日期间隔的年、月、周、日数
2013/06/13 PHP
深入PHP数据加密详解
2013/06/18 PHP
CodeIgniter读写分离实现方法详解
2016/01/20 PHP
ECshop 迁移到 PHP7版本时遇到的兼容性问题
2016/02/15 PHP
PHP购物车类Cart.class.php定义与用法示例
2016/07/20 PHP
利用Laravel事件系统如何实现登录日志的记录详解
2017/05/20 PHP
Thinkphp开发--集成极光推送
2017/09/15 PHP
JSON JQUERY模板实现说明
2010/07/03 Javascript
myeclipse安装jQuery插件的方法
2011/03/29 Javascript
JQuery触发事件例如click
2013/09/11 Javascript
jquery和ajax的关系详细介绍
2013/11/29 Javascript
jquery基础教程之数组使用详解
2014/03/10 Javascript
jQuery事件的绑定、触发、及监听方法简单说明
2016/05/10 Javascript
HTML5实现微信拍摄上传照片功能
2017/04/21 Javascript
bootstrap timepicker在angular中取值并转化为时间戳
2017/06/13 Javascript
vue Element-ui input 远程搜索与修改建议显示模版的示例代码
2017/10/19 Javascript
jQuery实现简单评论功能
2020/08/19 jQuery
Python中的高级数据结构详解
2015/03/27 Python
windows下python和pip安装教程
2018/05/25 Python
使用Python实现毫秒级抢单功能
2019/06/06 Python
Python实现将蓝底照片转化为白底照片功能完整实例
2019/12/13 Python
python 日志模块 日志等级设置失效的解决方案
2020/05/26 Python
Python如何使用ConfigParser读取配置文件
2020/11/12 Python
香港礼品网站:GiftU eshop
2017/09/01 全球购物
中国一家专注拼团的社交购物网站:拼多多
2018/06/13 全球购物
C#中有没有运算符重载?能否使用指针?
2014/05/05 面试题
体育专业个人的求职信范文
2013/09/21 职场文书
年度考核自我鉴定
2013/11/09 职场文书
大专生找工作自荐书
2014/06/10 职场文书
毕业生找工作求职信
2014/08/05 职场文书
四风对照检查剖析材料
2014/10/07 职场文书
践行三严三实心得体会(2016推荐篇)
2016/01/06 职场文书
SQL使用复合索引实现数据库查询的优化
2022/05/25 SQL Server
Vue Element plus使用方法梳理
2022/12/24 Vue.js