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 相关文章推荐
javascript高级程序设计第二版第十二章事件要点总结(常用的跨浏览器检测方法)
Aug 22 Javascript
解析Javascript中中括号“[]”的多义性
Dec 03 Javascript
angularJS提交表单(form)
Feb 09 Javascript
使用jquery.qrcode.min.js实现中文转化二维码
Mar 11 Javascript
分享jQuery网页元素拖拽插件
Dec 01 Javascript
通过javascript进行UTF-8编码的实现方法
Jun 27 Javascript
ES6入门教程之Iterator与for...of循环详解
May 17 Javascript
ejsExcel模板在Vue.js项目中的实际运用
Jan 27 Javascript
每周一练 之 数据结构与算法(Stack)
Apr 16 Javascript
解决IOS端微信H5页面软键盘弹起后页面下方留白的问题
Jun 05 Javascript
JS为什么说async/await是generator的语法糖详解
Jul 11 Javascript
JavaScript 去重和重复次数统计
Mar 31 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
apache+mysql+php+ssl服务器之完全安装攻略
2006/09/05 PHP
纯真IP数据库的应用 IP地址转化成十进制
2009/06/14 PHP
PHP安全技术之 实现php基本安全
2010/09/04 PHP
php实现图片局部打马赛克的方法
2015/02/11 PHP
LINUX下PHP程序实现WORD文件转化为PDF文件的方法
2016/05/13 PHP
搜索附近的人PHP实现代码
2018/02/11 PHP
使用Git实现Laravel项目的自动化部署
2019/11/24 PHP
javascript hasFocus使用实例
2010/06/29 Javascript
Javascript实现重力弹跳拖拽运动效果示例
2013/06/28 Javascript
第五章之BootStrap 栅格系统
2016/04/25 Javascript
JavaScript面试题大全(推荐)
2016/09/22 Javascript
Js利用prototype自定义数组方法示例
2017/10/20 Javascript
使用Vue构建可重用的分页组件
2018/03/26 Javascript
jsonp跨域获取数据的基础教程
2018/07/01 Javascript
nodejs实现范围请求的实现代码
2018/10/12 NodeJs
vue路由传参的基本实现方式小结【三种方式】
2020/02/05 Javascript
Vue项目打包编译优化方案
2020/09/16 Javascript
从表单校验看JavaScript策略模式的使用详解
2020/10/17 Javascript
python获取指定路径下所有指定后缀文件的方法
2015/05/26 Python
总结python实现父类调用两种方法的不同
2017/01/15 Python
Python模块WSGI使用详解
2018/02/02 Python
python中数据爬虫requests库使用方法详解
2018/02/11 Python
Python基础教程之if判断,while循环,循环嵌套
2019/04/25 Python
Python获取当前脚本文件夹(Script)的绝对路径方法代码
2019/08/27 Python
python tkinter控件布局项目实例
2019/11/04 Python
Pytorch之保存读取模型实例
2019/12/30 Python
Python TCPServer 多线程多客户端通信的实现
2019/12/31 Python
浅谈python锁与死锁问题
2020/08/14 Python
详解Python中@staticmethod和@classmethod区别及使用示例代码
2020/12/14 Python
HTML5 WebSocket实现点对点聊天的示例代码
2018/01/31 HTML / CSS
TripAdvisor斯洛伐克:阅读评论、比较价格和酒店预订
2018/04/25 全球购物
平民服装店创业计划书
2014/01/17 职场文书
二年级班级文化建设方案
2014/05/10 职场文书
受伤赔偿协议书
2014/09/24 职场文书
办公室卫生管理制度
2015/08/04 职场文书
三严三实学习心得体会(精选N篇)
2016/01/05 职场文书