JS仿QQ好友列表展开、收缩功能(第一篇)


Posted in Javascript onJuly 07, 2017

效果图如下所示:

JS仿QQ好友列表展开、收缩功能(第一篇)

html:

<ul id="list">
 <li class="lis">
  <h2>我的好友</h2>
  <ul>
   <li>张三</li>
   <li>李四</li>
   ...
  </ul>
 </li>
 <li class="lis">
  <h2>企业好友</h2>
  <ul>
   <li>小明</li>
   <li>小红</li>
   ...
  </ul>
 </li>
 <li class="lis">
  <h2>黑名单</h2>
  <ul>
   <li>哈哈</li>
   ...
  </ul>
 </li>
</ul>

css:

ul,h2 {padding: 0;margin: 0;}
li {list-style: none;}
#list {
 width: 240px;
 border: 1px solid #ccc;
 margin: 0 auto;
}
#list .lis { }
#list h2 {
 height: 30px;
 line-height: 30px;
 text-indent: 20px;/*文字缩进20px*/
 background: url(img/ico1.gif) no-repeat 5px center pink;/*前面小箭头*/
 cursor: pointer;
}
#list .active { /* 点击时添加的类名 */
 background: url(img/ico2.gif) no-repeat 5px center #ff9;
}
#list ul {display: none;}
#list ul li {
 line-height: 24px;
 border-bottom: 2px solid #fc4;
 text-indent: 24px;/*文字缩进24px*/
}

js:

window.onload = function(){   
 var list = document.getElementById('list');   
 var ah2 = list.getElementsByTagName('h2');   
 var uls = list.getElementsByTagName('ul');
 // h2要和下面的ul进行匹配,所以我们要用索引值,给h2身上添加索引值
 for(var i=0;i<ah2.length;i++){    
  ah2[i].index = i;//给h2添加索引值,点击谁就给谁添加索引值
  ah2[i].onclick = function(){
   if(this.className == ''){//判断所点击的h2标签是否有类,
    //this.index指h2身上的索引数,this指h2,h2的索引值为this.index
    uls[this.index].style.display = 'block'; 
    this.className = 'active';//给当前点击的h2添加类,更改箭头方向
   }else{
    uls[this.index].style.display = 'none';
    this.className = '';
   }
  }
 }
}

下篇给大家介绍:JS仿QQ好友列表展开、收缩功能(第二篇)

以上所述是小编给大家介绍的JS仿QQ好友列表展开、收缩功能(第一篇),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jValidate 基于jQuery的表单验证插件
Dec 12 Javascript
jQuery制作仿腾讯web qq用户体验桌面
Aug 20 Javascript
深入理解javascript的执行顺序
Apr 04 Javascript
jQuery中:button选择器用法实例
Jan 04 Javascript
JavaScript必知必会(五) eval 的使用
Jun 08 Javascript
基于JavaScript实现轮播图代码
Jul 14 Javascript
微信小程序 vidao实现视频播放和弹幕的功能
Nov 02 Javascript
jQuery Validate 数组 全部验证问题
Jan 12 Javascript
360doc网站不登录就无法复制内容的解决方法
Jan 27 Javascript
Vue 全局loading组件实例详解
May 29 Javascript
vue axios请求成功却进入catch的原因分析
Sep 08 Javascript
在vue中实现清除echarts上次保留的数据(亲测有效)
Sep 09 Javascript
JS仿QQ好友列表展开、收缩功能(第二篇)
Jul 07 #Javascript
JS实现发送短信验证后按钮倒计时功能(防止刷新倒计时失效)
Jul 07 #Javascript
详解vue.js+UEditor集成 [前后端分离项目]
Jul 07 #Javascript
JS实现搜索关键词的智能提示功能
Jul 07 #Javascript
vue.js国际化 vue-i18n插件的使用详解
Jul 07 #Javascript
javascript ES6 新增了let命令使用介绍
Jul 07 #Javascript
微信小程序之绑定点击事件实例详解
Jul 07 #Javascript
You might like
新52大事件
2020/03/03 欧美动漫
PHP 文件上传全攻略
2010/04/28 PHP
php 验证码实例代码
2010/06/01 PHP
php使用正则表达式提取字符串中尖括号、小括号、中括号、大括号中的字符串
2020/04/05 PHP
Javascript 个人笔记(没有整理,很乱)
2007/07/07 Javascript
jquery控制listbox中项的移动并排序
2009/11/12 Javascript
使用JS 清空File控件的路径值
2013/07/08 Javascript
JavaScript实现数字数组正序排列的方法
2015/04/06 Javascript
javascript正则表达式基础知识入门
2015/04/20 Javascript
JavaScript实现搜索框的自动完成功能(一)
2016/02/25 Javascript
jQuery移动端日期(datedropper)和时间(timedropper)选择器附源码下载
2016/04/19 Javascript
jquery获取复选框的值的简单实例
2016/05/26 Javascript
js学习总结之DOM2兼容处理this问题的解决方法
2017/07/27 Javascript
VSCode配置react开发环境的步骤
2017/12/27 Javascript
解决vue多个路由共用一个页面的问题
2018/03/12 Javascript
详解基于mpvue的小程序markdown适配解决方案
2018/05/08 Javascript
简单明了区分escape、encodeURI和encodeURIComponent
2018/05/26 Javascript
浅析Vue实例以及生命周期
2018/08/14 Javascript
ES6 Object方法扩展的应用实例分析
2019/06/25 Javascript
Vue使用预渲染代替SSR的方法
2020/07/02 Javascript
[32:39]完美世界DOTA2联赛循环赛 Forest vs Inki BO2第一场 11.04
2020/11/04 DOTA
python3使用PyMysql连接mysql数据库实例
2017/02/07 Python
Python基于matplotlib绘制栈式直方图的方法示例
2017/08/09 Python
轻松理解Python 中的 descriptor
2017/09/15 Python
Python二进制串转换为通用字符串的方法
2018/07/23 Python
PyTorch 解决Dataset和Dataloader遇到的问题
2020/01/08 Python
浅谈Python线程的同步互斥与死锁
2020/03/22 Python
python实现贪吃蛇双人大战
2020/04/18 Python
python如何对链表操作
2020/10/10 Python
matplotlib制作雷达图报错ValueError的实现
2021/01/05 Python
HTML5高仿微信聊天、微信聊天表情|对话框|编辑器功能
2018/04/23 HTML / CSS
全球摩托车装备领导者:RevZilla
2017/09/04 全球购物
JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
2013/07/02 面试题
2014年小学重阳节活动策划方案
2014/09/16 职场文书
小学生作文之《压岁钱的烦恼》
2019/09/27 职场文书
js Proxy的原理详解
2021/05/25 Javascript