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 相关文章推荐
编写js扩展方法判断一个数组中是否包含某个元素
Nov 08 Javascript
3种Jquery限制文本框只能输入数字字母的方法
Dec 03 Javascript
js实现用户离开页面前提示是否离开此页面的方法(包括浏览器按钮事件)
Jul 18 Javascript
防止Node.js中错误导致进程阻塞的办法
Aug 11 Javascript
Angular实现下载安装包的功能代码分享
Sep 05 Javascript
JavaScript中变量提升与函数提升经典实例分析
Jul 26 Javascript
小程序实现选择题选择效果
Nov 04 Javascript
jQuery表单元素过滤选择器用法实例分析
Feb 20 jQuery
vue cli 3.0 搭建项目的图文教程
May 17 Javascript
解决LayUI数据表格复选框不居中显示的问题
Sep 25 Javascript
vue使用recorder.js实现录音功能
Nov 22 Javascript
JavaScript中数组去重的5种方法
Jul 04 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
PHP怎样调用MSSQL的存储过程
2006/10/09 PHP
基于PHP选项与信息函数的使用详解
2013/05/10 PHP
php计算整个目录大小的方法
2015/06/19 PHP
ThinkPHP实现递归无级分类――代码少
2015/07/29 PHP
PHP构造二叉树算法示例
2017/06/21 PHP
PHP实现常用排序算法的方法
2020/02/05 PHP
jquery 事件执行检测代码
2009/12/09 Javascript
tangram框架响应式加载图片方法
2013/11/21 Javascript
返回顶部按钮响应滚动且动态显示与隐藏
2014/10/14 Javascript
js给selected添加options的方法
2015/05/06 Javascript
js 判断所选时间(或者当前时间)是否在某一时间段的实现代码
2015/09/05 Javascript
jQuery实现的简单折叠菜单(折叠面板)效果代码
2015/09/16 Javascript
AngularJS 入门教程之HTML DOM实例详解
2016/07/28 Javascript
深入浅析JavaScript中的RegExp对象
2017/09/18 Javascript
Web技术实现移动监测的介绍
2017/09/18 Javascript
快速解决select2在bootstrap模态框中下拉框隐藏的问题
2018/08/10 Javascript
chosen实现省市区三级联动
2018/08/16 Javascript
详解vue项目打包步骤
2019/03/29 Javascript
详解easyui 切换主题皮肤
2019/04/04 Javascript
微信小程序实现获取用户信息并存入数据库操作示例
2019/05/07 Javascript
js实现坦克移动小游戏
2019/10/28 Javascript
基于vue--key值的特殊用处详解
2020/07/31 Javascript
openlayers 3实现车辆轨迹回放
2020/09/24 Javascript
[00:44]TI7不朽珍藏III——军团指挥官不朽展示
2017/07/15 DOTA
Python的Django框架中消息通知的计数器实现教程
2016/06/13 Python
Python使用functools模块中的partial函数生成偏函数
2016/07/02 Python
python3+PyQt5重新实现QT事件处理程序
2018/04/19 Python
python3实现字符串的全排列的方法(无重复字符)
2018/07/07 Python
Python 异常的捕获、异常的传递与主动抛出异常操作示例
2019/09/23 Python
python实时监控logstash日志代码
2020/04/27 Python
ZWILLING双立人法国网上商店:德国刀具锅具厨具品牌
2019/08/28 全球购物
教师绩效考核方案
2014/01/21 职场文书
红领巾广播站广播稿
2014/02/01 职场文书
ktv总经理岗位职责
2014/02/17 职场文书
2014年社区国庆节活动方案
2014/09/16 职场文书
保密法制宣传月活动总结
2015/05/07 职场文书