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 相关文章推荐
解析John Resig Simple JavaScript Inheritance代码
Dec 03 Javascript
使用node.js半年来总结的 10 条经验
Aug 18 Javascript
深入分析js的冒泡事件
Dec 05 Javascript
jQuery中prop()方法用法实例
Jan 05 Javascript
以Python代码实例展示kNN算法的实际运用
Oct 26 Javascript
详解Node.js模块间共享数据库连接的方法
May 24 Javascript
jQuery中Chosen三级联动功能实例代码
Mar 07 Javascript
JS实现json的序列化和反序列化功能示例
Jun 13 Javascript
详解react、redux、react-redux之间的关系
Apr 11 Javascript
Vue.js点击切换按钮改变内容的实例讲解
Aug 22 Javascript
探秘vue-rx 2.0(推荐)
Sep 21 Javascript
基于iview-admin实现动态路由的示例代码
Oct 02 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中使用数组实现堆栈数据结构的代码
2012/02/05 PHP
php获取文件夹路径内的图片以及分页显示示例
2014/03/11 PHP
Yii2针对游客、用户防范规则和限制的解决方法分析
2016/10/08 PHP
php正则去除网页中所有的html,js,css,注释的实现方法
2016/11/03 PHP
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
2017/11/17 PHP
PHP面向对象五大原则之单一职责原则(SRP)详解
2018/04/04 PHP
PHP token验证生成原理实例分析
2019/06/05 PHP
javascript jQuery $.post $.ajax用法
2008/07/09 Javascript
关于JavaScript的with 语句的使用方法
2011/05/09 Javascript
jQuery.extend 函数的详细用法
2012/06/27 Javascript
为jquery的ajaxfileupload增加附加参数的方法
2014/03/04 Javascript
20分钟轻松创建自己的Bootstrap站点
2016/05/12 Javascript
AngularJS基础 ng-keydown 指令简单示例
2016/08/02 Javascript
React学习笔记之条件渲染(一)
2017/07/02 Javascript
Vue 2.5.2下axios + express 本地请求404的解决方法
2018/02/21 Javascript
JQuery animate动画应用示例
2019/05/14 jQuery
vue配置nprogress实现页面顶部进度条
2019/09/21 Javascript
微信小程序间使用navigator跳转传值问题实例分析
2020/03/27 Javascript
[02:09:59]火猫TV国士无双dota2 6.82版本详解(下)
2014/09/29 DOTA
Python实现带百分比的进度条
2016/06/28 Python
python 实现GUI(图形用户界面)编程详解
2019/07/17 Python
Python 、Pycharm、Anaconda三者的区别与联系、安装过程及注意事项
2019/10/11 Python
Django框架实现在线考试系统的示例代码
2020/11/30 Python
雅诗兰黛旗下专业男士保养领导品牌:Lab Series
2017/05/15 全球购物
英国设计师珠宝网站:Joshua James Jewellery
2020/03/01 全球购物
几个常见的消息中间件(MOM)
2014/01/08 面试题
设备管理实施方案
2014/05/31 职场文书
电子商务专业求职信范文
2015/03/19 职场文书
普通员工辞职信范文
2015/05/12 职场文书
离职信范本
2015/06/23 职场文书
安全主题班会教案
2015/08/12 职场文书
《正比例》教学反思
2016/02/23 职场文书
pytorch 中autograd.grad()函数的用法说明
2021/05/12 Python
浅谈tf.train.Saver()与tf.train.import_meta_graph的要点
2021/05/26 Python
Node.js实现爬取网站图片的示例代码
2022/04/04 NodeJs
德生BCL3000抢先使用感受和评价
2022/04/07 无线电