js实现带三角符的手风琴效果


Posted in Javascript onMarch 01, 2017

效果图:

 js实现带三角符的手风琴效果

图(1)初始图

js实现带三角符的手风琴效果

图(2)点击展开图

代码如下:

<!DOCTYPE html>
<html>
 <head>
 <meta charset="UTF-8">
 <title></title>
 <style>
  *{
  margin: 0;
  padding: 0;
  }
  li{
  list-style: none;
  }
  #list{
  width: 240px;
  border: 1px solid #666;
  margin: 20px auto;
  }
  #list .lis{
  }
  #list h2{
  height: 30px;
  line-height: 30px;
  overflow: hidden;
  background: lightsalmon;
  color: #f1f1f1;
  }
  #list h2.active{
  background: pink;
  height: 30px;
  line-height: 30px;
  overflow: hidden;
  color: #666;
  }
  #list h2.active div{
  display: inline-block;
  width: 0;
  height: 0;
  border-left: 8px solid transparent;
  border-top: 12px solid #666;
  border-right:8px solid transparent;
  border-bottom:2px solid transparent;
  margin-right: 4px;
  }
  #list h2 div{
  display: inline-block;
  width: 0;
  height: 0;
  border-left: 12px solid #f1f1f1;
  border-right: 6px solid transparent;
  border-bottom: 9px solid transparent;
  border-top:9px solid transparent;
  /*margin-right: 3px;*/
  }
  #list .lis ul{
  display: none;
  }
  #list .lis ul li{
  line-height: 24px;
  border-bottom: 1px solid #666;
  text-indent: 15px;
  }
  #list .lis ul li.hover{
  background: lightgreen;
  color: #F8F8F8;
  }
  #list .lis ul li:first-of-type{
  border-top: 1px solid #ccc;
  }
  #list .lis:last-of-type ul li:last-of-type{
  border-bottom:none;
  }
 </style>
 <script>
  window.onload=function(){
  var oUl=document.getElementById('list');
  var aH2=oUl.getElementsByTagName('h2');
  var aUl=oUl.getElementsByTagName('ul');
  var h2Len=aH2.length;
  var aLi=null;
  var arrLi=[];
  var aUlLen=aUl.length;
  for(var i=0;i<h2Len;i++){
   aH2[i].index=i;
   aH2[i].onclick=function(){
   if(this.className=='')
   {
    aUl[this.index].style.display='block';
    this.className='active';
   }
   else{
    aUl[this.index].style.display='none';
    this.className='';
   }
   }
  }
  for(var i=0;i<aUlLen;i++){
   aLi=aUl[i].getElementsByTagName('li');
   for(var j=0;j<aLi.length;j++){
   arrLi.push(aLi[j]);
   }
  }
  for(var i=0;i<arrLi.length;i++){
   arrLi[i].onclick=function(){
   for(var i=0;i<arrLi.length;i++){
    arrLi[i].className='';
   }
   this.className='hover';
   }
  }
  }
 </script>
 </head>
 <body>
 <ul id="list">
  <li class="lis">
  <h2><div></div>大学同学</h2>
  <ul>
   <li>张三</li>
   <li>张三</li>
   <li>张三</li>
   <li>张三</li>
  </ul>
  </li>
  <li class="lis">
  <h2><div></div>高中同学</h2>
  <ul>
   <li>李四</li>
   <li>李四</li>
   <li>李四</li>
   <li>李四</li>
  </ul>
  </li>
  <li class="lis">
  <h2><div></div>初中同学</h2>
  <ul>
   <li>王五</li>
   <li>王五</li>
   <li>王五</li>
   <li>王五</li>
  </ul>
  </li>
 </ul>
 </body>
</html>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
js 事件小结 表格区别
Aug 13 Javascript
javascript vvorld 在线加密破解方法
Nov 13 Javascript
javascript showModalDialog 内跳转页面的问题
Nov 25 Javascript
jquery的选择器的使用技巧之如何选择input框
Sep 22 Javascript
wap手机图片滑动切换特效无css3元素js脚本编写
Jul 28 Javascript
JavaScript多图片上传案例
Sep 28 Javascript
基于jquery实现表格无刷新分页
Jan 07 Javascript
由浅入深剖析Angular表单验证
Jul 14 Javascript
JavaScript仿支付宝6位数字密码输入框
Dec 29 Javascript
图片懒加载插件实例分享(含解析)
Jan 09 Javascript
javascript实现Emrips反质数枚举的示例代码
Dec 06 Javascript
JS+WCF实现进度条实时监测数据加载量的方法详解
Dec 19 Javascript
JavaScript拖动层Div代码
Mar 01 #Javascript
vue组件间通信解析
Mar 01 #Javascript
性能优化之代码优化页面加载速度
Mar 01 #Javascript
详解AngularJS通过ocLazyLoad实现动态(懒)加载模块和依赖
Mar 01 #Javascript
Javascript仿京东放大镜的效果
Mar 01 #Javascript
Ajax实现不刷新取最新商品
Mar 01 #Javascript
Angular1.x复杂指令实例详解
Mar 01 #Javascript
You might like
ThinkPHP3.1新特性之字段合法性检测详解
2014/06/19 PHP
PHP连接SQL Server的方法分析【基于thinkPHP5.1框架】
2019/05/06 PHP
页面中iframe相互传值传参
2009/12/13 Javascript
javaScript checkbox 全选/反选及批量删除
2010/04/28 Javascript
如何用JavaScript动态呼叫函数(两种方式)
2013/05/03 Javascript
javascript打印输出json实例
2013/11/11 Javascript
javascript实用方法总结
2015/02/06 Javascript
js实现登陆遮罩效果的方法
2015/07/28 Javascript
解决js函数闭包内存泄露问题的办法
2016/01/25 Javascript
使用jQuery制作遮罩层弹出效果的极简实例分享
2016/05/12 Javascript
深入理解Node.js 事件循环和回调函数
2016/11/02 Javascript
Vue.js创建Calendar日历效果
2016/11/03 Javascript
jQuery中Nicescroll滚动条插件的用法
2016/11/10 Javascript
JavaScript计时器用法分析【setTimeout和clearTimeout】
2017/01/18 Javascript
Require.JS中的几种define定义方式示例
2017/06/01 Javascript
vue中的非父子间的通讯问题简单的实例代码
2017/07/19 Javascript
基于Vue渲染与插件的加载顺序的问题详解
2018/03/05 Javascript
Vue头像处理方案小结
2018/07/26 Javascript
在Bootstrap开发框架中使用dataTable直接录入表格行数据的方法
2018/10/25 Javascript
基于javascript的拖拽类封装详解
2019/04/19 Javascript
layui文件上传控件带更改后数据传值的方法
2019/09/23 Javascript
使用JavaScript计算前一天和后一天的思路详解
2019/12/20 Javascript
微信小程序入门之指南针
2020/10/22 Javascript
vue祖孙组件之间的数据传递案例
2020/12/07 Vue.js
javascript中闭包closure的深入讲解
2021/03/03 Javascript
python将xml xsl文件生成html文件存储示例讲解
2013/12/03 Python
Python中的特殊语法:filter、map、reduce、lambda介绍
2015/04/14 Python
python基础知识小结之集合
2015/11/25 Python
python实现蒙特卡罗方法教程
2019/01/28 Python
python如何使用jt400.jar包代码实例
2019/12/20 Python
Django框架教程之中间件MiddleWare浅析
2019/12/29 Python
python 调用API接口 获取和解析 Json数据
2020/09/28 Python
CSS3实现多背景模拟动态边框的效果
2016/11/08 HTML / CSS
标记环介质访问控制协议
2016/03/27 面试题
基于nginx实现上游服务器动态自动上下线无需reload的实现方法
2021/03/31 Servers
悬疑名作《朋友游戏》动画无字ED宣传片 新角色公开
2022/04/13 日漫