JS+CSS实现类似QQ好友及黑名单效果的树型菜单


Posted in Javascript onSeptember 22, 2015

本文实例讲述了JS+CSS实现类似QQ好友及黑名单效果的树型菜单。分享给大家供大家参考。具体如下:

今天介绍的这个菜单堪称极品啊,不过里面的有些图标丢失了,路径还留在那,真想使用的朋友自己制作两个折叠菜单的图标按路径传上去就行了,这个菜单是模仿QQ面板的菜单功能,很多朋友还是很喜欢这种功能的,没想到用这么少的JS代码也可实现 ,值得代签哦。

运行效果截图如下:

JS+CSS实现类似QQ好友及黑名单效果的树型菜单

在线演示地址如下:

具体代码如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>QQ好友/黑名单的树型菜单</TITLE>
</HEAD>
<BODY>
<script>
if (!document.getElementById)
 document.getElementById = function() { return null; }
function initializeMenu(menuId, actuatorId) {
 var menu = document.getElementById(menuId);
 var actuator = document.getElementById(actuatorId);
 if (menu == null || actuator == null) return;
 actuator.parentNode.style.backgroundImage = "url()";
 actuator.onclick = function() {
  var display = menu.style.display;
  this.parentNode.style.backgroundImage =
   (display == "block") ? "url()" : "url()";
  menu.style.display = (display == "block") ? "none" : "block";
  return false;
 }
}
 window.onload = function() {
   initializeMenu("productsMenu", "productsActuator");
   initializeMenu("newPhonesMenu", "newPhonesActuator");
   initializeMenu("compareMenu", "compareActuator");
  }
</script>
<style>
body {
 font-family: verdana, helvetica, arial, sans-serif;
}
#mainMenu {
 background-color: #EEE;
 border: 1px solid #CCC;
 color: #000;
 width: 203px;
}
#menuList {
 margin: 0px;
 padding: 10px 0px 10px 15px;
}
li.menubar {
 background: url() no-repeat 0em 0.3em;
 font-size: 12px;
 line-height: 1.5em;
 list-style: none outside;
}
.menu, .submenu {
 display: none;
 margin-left: 15px;
 padding: 0px;
}
.menu li, .submenu li {
 background: url() no-repeat 0em 0.3em;
 list-style: none outside;
}
a.actuator {
 background-color: transparent;
 color: #000;
 font-size: 12px;
 padding-left: 15px;
 text-decoration: none;
}
a.actuator:hover {
 text-decoration: underline;
}
.menu li a, .submenu li a {
 background-color: transparent;
 color: #000;
 font-size: 12px;
 padding-left: 15px;
 text-decoration: none;
}
.menu li a:hover, submenu li a:hover {
 text-decoration: underline;
}
span.key {
 text-decoration: underline;
}
</style>
</head>
<body>
<div id="mainMenu">
  <ul id="menuList">
  <li class="menubar">
   <a href="#" id="productsActuator" class="actuator">图秀地带收藏夹</a>
   <ul id="productsMenu" class="menu">
   <li>
    <a href="#" id="newPhonesActuator" class="actuator">我的好友</a>
    <ul id="newPhonesMenu" class="submenu">
    <li><a href="#">张三[10000001]</a></li>
    <li><a href="#">李四[10000002]</a></li>
    <li><a href="#">张三[10000001]</a></li>
    <li><a href="#">李四[10000002]</a></li>
    </ul>
   </li>
   <li>
    <a href="#" id="compareActuator" class="actuator">陌生人</a>
    <ul id="compareMenu" class="submenu">
    <li><a href="#">张三[10000001]</a></li>
    <li><a href="#">李四[10000002]</a></li>
    <li><a href="#">张三[10000001]</a></li>
    <li><a href="#">李四[10000002]</a></li>
    </ul>
   </li>
   </ul>
  </li>
  </ul>
 </div>
 </body>
</BODY>
</HTML>

希望本文所述对大家的JavaScript程序设计有所帮助。

Javascript 相关文章推荐
实现复选框全选/全不选切换
Dec 23 Javascript
Javascript中的变量使用说明
May 18 Javascript
js页面跳转常用的几种方式
Nov 25 Javascript
html5的自定义data-*属性和jquery的data()方法的使用示例
Aug 21 Javascript
AngularJS基础知识笔记之过滤器
May 10 Javascript
JS简单随机数生成方法
Sep 05 Javascript
有关文件上传 非ajax提交 得到后台数据问题
Oct 12 Javascript
js实现图片360度旋转
Jan 22 Javascript
node.js 核心http模块,起一个服务器,返回一个页面的实例
Sep 11 Javascript
用vue构建多页面应用的示例代码
Sep 20 Javascript
详解angular2 控制视图的封装模式
Dec 27 Javascript
详解为什么Vue中的v-if和v-for不建议一起用
Jan 13 Vue.js
jQuery实现Flash效果上下翻动的中英文导航菜单代码
Sep 22 #Javascript
QQ登录背景闪动效果附效果演示源码下载
Sep 22 #Javascript
jQuery实现气球弹出框式的侧边导航菜单效果
Sep 22 #Javascript
jQuery实现Tab菜单滚动切换的方法
Sep 21 #Javascript
基于JQuery和CSS3实现仿Apple TV海报背景视觉差特效源码分享
Sep 21 #Javascript
Java Mybatis框架入门基础教程
Sep 21 #Javascript
JS实现仿微博可关闭弹出层效果
Sep 21 #Javascript
You might like
php email邮箱正则
2008/10/08 PHP
php中url传递中文字符,特殊危险字符的解决方法
2013/08/17 PHP
php socket客户端及服务器端应用实例
2014/07/04 PHP
通过php删除xml文档内容的方法
2015/01/23 PHP
PHP实现抓取Google IP并自动修改hosts文件
2015/02/12 PHP
PHP封装的XML简单操作类完整实例
2017/11/13 PHP
比较常见的javascript中定义函数的区别
2015/11/09 Javascript
微信小程序的生命周期的详解
2017/10/19 Javascript
JQuery复选框全选效果如何实现
2020/05/08 jQuery
如何编写一个 Webpack Loader的实现
2020/10/18 Javascript
ant design vue 表格table 默认勾选几项的操作
2020/10/31 Javascript
python 获取et和excel的版本号
2009/04/09 Python
如何在Python函数执行前后增加额外的行为
2016/10/20 Python
Python基于pycrypto实现的AES加密和解密算法示例
2018/04/10 Python
python调用虹软2.0第三版的具体使用
2019/02/22 Python
浅谈django url请求与数据库连接池的共享问题
2019/08/29 Python
浅谈python之自动化运维(Paramiko)
2020/01/31 Python
Flask中jinja2的继承实现方法及实例
2021/03/03 Python
法国综合购物网站:RueDuCommerce
2016/09/12 全球购物
英国在线药房和在线药剂师:Chemist 4 U
2020/01/05 全球购物
机械专业毕业生自荐信
2013/11/02 职场文书
纪念建党演讲稿范文
2014/01/13 职场文书
《鞋匠的儿子》教学反思
2014/03/02 职场文书
暑假安全保证书
2015/02/28 职场文书
2015年小学生国庆节演讲稿
2015/07/30 职场文书
防震减灾主题班会
2015/08/14 职场文书
2016年过年放假安排通知
2015/08/18 职场文书
教师信息技术学习心得体会
2016/01/21 职场文书
话题作文之财富(600字)
2019/12/03 职场文书
《学会生存》读后感3篇
2019/12/09 职场文书
Jupyter notebook 更改文件打开的默认路径操作
2021/05/21 Python
python tqdm用法及实例详解
2021/06/16 Python
linux中nohup和后台运行进程查看及终止
2021/06/24 Python
Java实现多线程聊天室
2021/06/26 Java/Android
Vue3.0中Ref与Reactive的区别示例详析
2021/07/07 Vue.js
Python内置数据类型中的集合详解
2022/03/18 Python