js自定义QQ菜单效果


Posted in Javascript onJanuary 10, 2017

QQ菜单大家都见过,这样有以下的功能:
1.点击我的好友,会展示下拉出具体的好友
2.再点击我的好友,会收缩
3.首次点击具体的某个好友,只有当前这个好友高亮
4.再次点击这个好友时,高亮状态就消失了

还是瞄一眼效果图吧:

js自定义QQ菜单效果

最后代码

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style>
ul,h2 {padding:0;margin:0;}
li{list-style:none;}
#list{width:200px;margin:0 auto;border:1px solid #000;}
#list{width:200px;}
#list h2{width:200px;height:30px;line-height:30px;text-align:center;background:url(img/ico1.gif) no-repeat 20% 50% #6699FF;text-indent:24px;border-bottom:1px dotted #000;}
#list h2.active{background:url(img/ico2.gif) no-repeat 20% 50% #FFCC99;}
#list ul{width:200px;text-align:center;display:none;}
#list ul li{width:200px;height:30px;line-height:30px;}
#list ul li.highlight{background:#FF66FF;}
</style>
<title>无标题文档</title>
<script>
window.onload = function () {
 var oUl = document.getElementById('list');
 var oH2 = oUl.getElementsByTagName('h2');
 var aUl = oUl.getElementsByTagName('ul');
 var aLi = [];
 var arr = [];
 var oldLi = null;
 var num = 0;

 // 点击菜单显示隐藏
 for( var i = 0; i < oH2.length; i++ ) {
 oH2[i].index = i;
 oH2[i].onclick = function () {
  if (this.className === '') {
  aUl[this.index].style.display = 'block';
  this.className = 'active';
  } else {
  aUl[this.index].style.display = 'none';
  this.className = '';
  }
 }
 }
 // 获取菜单中的每个li
 for ( var i = 0; i < aUl.length; i++ ) {
 aLi = aUl[i].getElementsByTagName('li');
 for ( var j = 0; j < aLi.length; j++ ) {
  arr.push(aLi[j]);
 }
 }
 // 遍历aLi
 for ( var i = 0; i < arr.length; i++ ) {
 arr[i].onOff = false;
 arr[i].onclick = function () {
  // 当上一个点击的li不是当前点击的Li
  if (oldLi && oldLi !== this) {
  oldLi.className = '';
  oldLi.onOff = false;
  }
  this.className = this.onOff ? '' : 'highlight';
  this.onOff = !this.onOff;
  oldLi = this;
 }
 }
}
</script>
</head>

<body>
<ul id="list">
 <li class="lis">
 <h2>我的好友</h2>
 <ul>
  <li>张三1</li>
  <li>张三2</li>
  <li>张三3</li>
 </ul>
 </li>
 <li class="lis">
 <h2>企业好友</h2>
 <ul>
  <li>李四1</li>
  <li>李四2</li>
  <li>李四3</li>
 </ul>
 </li>
 <li class="lis">
 <h2>黑名单</h2>
 <ul>
  <li>王五1</li>
  <li>王五2</li>
 </ul>
 </li>
</ul>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery 打开窗口返回值实现代码
Mar 04 Javascript
js parentElement和offsetParent之间的区别
Mar 23 Javascript
JavaScript判断DIV内容是否为空的方法
Jan 29 Javascript
jQuery表格的维护和删除操作
Feb 03 Javascript
javascript 中iframe高度自适应(同域)实例详解
May 16 Javascript
vue 使用Jade模板写html,stylus写css的方法
Feb 23 Javascript
Vue中的vue-resource示例详解
Nov 02 Javascript
使用Vue CLI创建typescript项目的方法
Aug 09 Javascript
JavaScript Array对象基本方法详解
Sep 03 Javascript
Node.js HTTP服务器中的文件、图片上传的方法
Sep 23 Javascript
Vue中img的src是动态渲染时不显示的解决
Nov 14 Javascript
Ajax实现异步加载数据
Nov 17 Javascript
js实现将json数组显示前台table中
Jan 10 #Javascript
详解Vue自定义过滤器的实现
Jan 10 #Javascript
JS实现的表头列头固定页面功能示例
Jan 10 #Javascript
VUE JS 使用组件实现双向绑定的示例代码
Jan 10 #Javascript
微信小程序 地图map详解及简单实例
Jan 10 #Javascript
jQuery操作复选框(CheckBox)的取值赋值实现代码
Jan 10 #Javascript
jQuery UI仿淘宝搜索下拉列表功能
Jan 10 #Javascript
You might like
linux iconv方法的使用
2011/10/01 PHP
Js的MessageBox
2006/12/03 Javascript
JQuery EasyUI 对话框的使用方法
2010/10/24 Javascript
jquery选择器需要注意的问题
2014/11/26 Javascript
JavaScript实现点击按钮切换网页背景色的方法
2015/10/17 Javascript
BootStrap扔进Django里的方法详解
2016/05/13 Javascript
JavaScript易错知识点整理
2016/12/05 Javascript
AngularJS中的按需加载ocLazyLoad示例
2017/01/11 Javascript
javascript 面向对象function详解及实例代码
2017/02/28 Javascript
Bootstrap下拉菜单Dropdowns的实现代码
2017/03/17 Javascript
JS判断两个对象内容是否相等的方法示例
2017/04/10 Javascript
jQuery选取所有复选框被选中的值并用Ajax异步提交数据的实例
2017/08/04 jQuery
关于JavaScript的单双引号嵌套问题
2017/08/20 Javascript
jQuery第一次运行页面默认触发点击事件的实例
2018/01/10 jQuery
微信小程序实现YDUI的ScrollNav组件
2018/02/02 Javascript
基于nodejs的雪碧图制作工具的示例代码
2018/11/05 NodeJs
解决layui的table插件无法多层级获取json数据的问题
2019/09/19 Javascript
ES6中Promise的使用方法实例总结
2020/02/18 Javascript
python下载图片实现方法(超简单)
2017/07/21 Python
基于Python数据可视化利器Matplotlib,绘图入门篇,Pyplot详解
2017/10/13 Python
python的exec、eval使用分析
2017/12/11 Python
python 信息同时输出到控制台与文件的实例讲解
2018/05/11 Python
python学生信息管理系统(完整版)
2020/04/05 Python
在Pycharm terminal中字体大小设置的方法
2019/01/16 Python
Python 分享10个PyCharm技巧
2019/07/13 Python
python字符串格式化方式解析
2019/10/19 Python
python实现按键精灵找色点击功能教程,使用pywin32和Pillow库
2020/06/04 Python
python matplotlib库的基本使用
2020/09/23 Python
Python的collections模块真的很好用
2021/03/01 Python
纪伊国屋泰国网上书店:Kinokuniya泰国
2017/12/24 全球购物
任意存:BOXFUL
2018/05/21 全球购物
建筑设计所实习生自我鉴定
2013/09/25 职场文书
护理自我鉴定范文
2013/10/06 职场文书
大学总结自我鉴定
2014/01/18 职场文书
大学生村官承诺书
2014/03/28 职场文书
JavaWeb 入门篇:创建Web项目,Idea配置tomcat
2021/07/16 Java/Android