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 相关文章推荐
Javascript客户端将指定区域导出到Word、Excel的代码
Oct 22 Javascript
Ext 表单布局实例代码
Apr 30 Javascript
Wordpress ThickBox 添加“查看原图”效果代码
Dec 11 Javascript
javascript如何动态加载表格与动态添加表格行
Nov 27 Javascript
js实现tab切换效果
Feb 16 Javascript
jQuery手风琴的简单制作
May 12 jQuery
基于js 字符串indexof与search方法的区别(详解)
Dec 04 Javascript
Node.js Buffer用法解读
May 18 Javascript
解决iview多表头动态更改列元素发生的错误的方法
Nov 02 Javascript
JavaScript变量提升和严格模式实例分析
Jan 27 Javascript
vue-property-decorator用法详解
Dec 12 Javascript
如何利用vue实现波谱拟合详解
Nov 05 Javascript
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 一个随机字符串生成代码
2010/05/26 PHP
yii框架结合charjs统计上一年与当前年数据的方法示例
2020/04/04 PHP
实用javaScript技术-屏蔽类
2006/08/15 Javascript
jquery 取子节点及当前节点属性值
2014/07/25 Javascript
jQuery控制TR显示隐藏的三种常用方法
2014/08/21 Javascript
JavaScript动态加载样式表的方法
2015/03/21 Javascript
举例讲解Node.js中的Writable对象
2015/07/29 Javascript
jQuery.trim() 函数及trim()用法详解
2015/10/26 Javascript
JavaScript实现99乘法表及隔行变色实例代码
2016/02/24 Javascript
Jquery组件easyUi实现选项卡切换示例
2016/08/23 Javascript
json的结构与遍历方法实例分析
2017/04/25 Javascript
JS实现简单抖动效果
2017/06/01 Javascript
关于vuejs中v-if和v-show的区别及v-show不起作用问题
2018/03/26 Javascript
解决vue 按钮多次点击重复提交数据问题
2018/05/10 Javascript
Vue 3.0 全家桶抢先体验
2020/04/28 Javascript
浅谈vue中$bus的使用和涉及到的问题
2020/07/28 Javascript
vue 将多个过滤器封装到一个文件中的代码详解
2020/09/05 Javascript
js实现圆形菜单选择器
2020/12/03 Javascript
原生js实现移动小球(碰撞检测)
2020/12/17 Javascript
python解析文件示例
2014/01/23 Python
Python批量提取PDF文件中文本的脚本
2018/03/14 Python
Pandas标记删除重复记录的方法
2018/04/08 Python
python游戏地图最短路径求解
2019/01/16 Python
tensorflow 限制显存大小的实现
2020/02/03 Python
解决tensorflow/keras时出现数组维度不匹配问题
2020/06/29 Python
虚拟机下载python是否需要联网
2020/07/27 Python
利用CSS3 动画 绘画 圆形动态时钟
2018/03/20 HTML / CSS
AmazeUI框架搭建的方法步骤(图文)
2020/08/17 HTML / CSS
英国顶级足球鞋的领先零售商:Lovell Soccer
2019/08/27 全球购物
钳工实习自我鉴定
2013/09/19 职场文书
违反学校规定检讨书
2014/01/18 职场文书
逃课上网检讨书
2014/02/20 职场文书
《陈毅探母》教学反思
2014/05/01 职场文书
小学五年级语文上册教学计划
2015/01/22 职场文书
Canvas三种动态画圆实现方法说明(小结)
2021/04/16 Javascript
基于Redission的分布式锁实战
2022/08/14 Redis