SlideMenu(老版本QQ好友分组列表样式)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>SlideMenu</title>
<style type="text/css">

#menuBox {width:150px; background-color:silver; text-align:center; border:solid 1px red;}
</style>
<script type="text/javascript">
function SlideMenu(itemHeight)
{
    var self = this;

    this.index = 0;
    this.speed = 10;
    this.selectedIndex = 0;

    var lastItem;

    this.AddItem = function(caption,element)
    {
        if(this.index==this.selectedIndex)
        {
            itemHeight = 200;
        }
        else
        {
            itemHeight = 0;
        }

        var tmp = document.getElementById(element);
        //Title
        var titleDiv = document.createElement("DIV");
        titleDiv.style.backgroundColor = "gray";
        titleDiv.style.color = "white";
        titleDiv.innerHTML = caption;
        titleDiv.style.width = "100%";
        titleDiv.style.cursor = "pointer";

        //Content
        var contentDiv = document.createElement("DIV");
        contentDiv.id = "item"+this.index;
        contentDiv.style.backgroundColor = "#03487F";
        contentDiv.style.overflow = "hidden";
        contentDiv.appendChild(tmp);
        contentDiv.style.height = itemHeight+"px";

        titleDiv.setAttribute("item",contentDiv.id);
        if(document.attachEvent)
        {
            titleDiv.attachEvent("onclick",ItemClick);
        }
        if(document.addEventListener)
        {
            titleDiv.addEventListener("click",ItemClick,false);
        }

        document.getElementById("menuBox").appendChild(titleDiv);
        document.getElementById("menuBox").appendChild(contentDiv);

        if(this.index==this.selectedIndex)
        {
            lastItem = contentDiv;
        }

        this.index += 1;
    }

    var ItemClick = function(evt)
    {
        var clickObj;
        if(document.attachEvent)
        {
            clickObj = window.event.srcElement;
        }
        else if(document.addEventListener)
        {
            clickObj = evt.target;
        }

        if(!flag)
        {
            return false;
        }

        var itemID = clickObj.getAttribute("item");

        Slide(itemID);
    }
    var flag = true;
    Slide = function(objID)
    {
        var obj = document.getElementById(objID);
        if(parseInt(obj.style.height)<200)
        {
            flag = false;
            obj.style.height = (parseInt(obj.style.height)+self.speed)+"px";
            if((parseInt(lastItem.style.height)-self.speed)<0)
            {
                lastItem.style.height = "0px";
            }
            else
            {
                lastItem.style.height = (parseInt(lastItem.style.height)-self.speed)+"px";
            }
            setTimeout("this.Slide(‘"+objID+"‘)",1);
        }
        else
        {
            flag = true;
            lastItem = obj;
        }
    }
}
</script>
</head>
<body>
<input type="text" id="txt" style="width:200px;" />
<input type="button" id="btn" value="ClickMe" />
<select id="sel"><option>Football</option><option>Basketball</option></select>
<div id="menuBox"></div>
<input type="button" onclick="alert(document.getElementById(‘menuBox‘).innerHTML);" value="ShowDivContent" />
<script type="text/javascript">
var list = new SlideMenu(50);
list.selectedIndex = 1;
list.AddItem("标题一","txt");
list.AddItem("标题二","btn");
list.AddItem("标题三","sel");
</script>
</body>
</html>
时间: 2024-10-03 08:34:08

SlideMenu(老版本QQ好友分组列表样式)的相关文章

WPF—QQ界面(五):QQ好友分组列表的效果实现 及 截稿

效果分析: 1.鼠标左键单击 分组 的组名,能够弹出一个下拉列表,并且左边的向右箭头转成向下: 2.弹出的下拉列表中包含好友的头像,好友的昵称,还有好友的个性签名或最新动态: 3.当鼠标移到好友这一行,能够将一行的背景色置蓝或置橙: 4.当鼠标移到好友的头像上,能够悬浮显示好友的个人信息. 除了这些基本的效果,还有很多效果蕴含其中....感觉分组列表的效果最难做. 我大致做出了那样的效果,很不美观.没达到一样的效果,就不分析思路了,以免误人子弟. 用的是ScrollViewer 前台: <Scr

Android UI设计: 仿QQ好友列表分组悬停,自定义Header,下拉刷新结合Demo

之前学习了Pulltorefresh,pinnedheaderexpanablelistview 但是结合起来还是有点麻烦的.尤其是像QQ这种.他不是单纯的第一个当做分组.他是分组上面还有几个按钮,还有搜索框,同时可以滑动,而且还可以悬停.想了试了好几种方法,都有BUG.最后用的一种方法. 1. pulltorefresh用的android.v4里面自带的,好像知乎也是 2. 悬停和分组用的网上的,然后我把第一个分组的样式改成了自定义的menu菜单,并且清空了child.这样看上去就像一个自定义

可在广域网部署运行的QQ高仿版 -- GG2014 完美版!新增支持:聊天记录、好友分组、托盘闪动消息提醒、登录状态、GIF动态表情

距上次GG V3.7版本(可在广域网部署运行的QQ高仿版 -- GG叽叽V3.7,优化视频聊天.控制更多相关细节)的发布,已经有50天了,这50天对于GG来说,是一个重大的飞跃.因为这段时间通过一些基于GG的实战项目,发现了GG的很多bug和不足之处,我都一一做了修正,并增加了一些基础且必须的功能.这次发布的是GG V4.0版本,又称为GG 2014. 记得在GG早期版本时,园子里的吉日兄跟我留言说:"GG完全不能正式使用......",那时我还不是很服气,后来当我基于GG开发正式项目

ExpandableListView仿QQ好友列表

本例中,对ExpandableListView中的数据进行了封装,分为两个JavaBean,一个为Group类表示组信息,一个Child类表示该组下子列表信息: Group: public class Group { private String groupName;//分组名 private List<Child> childList;//该分组写子列表 public String getGroupName() { return groupName; } public void setGro

QQ好友列表数据模型封装

QQ好友中的信息较多,如果我们单独从plist 中直接取出数据 是可以解决问题 但是相当复杂,以为列表中分组 ,每组中还有不同信息 大致模型是 数组套数组  数组套字典 所以我们要封装数据模型 // // GPGroupController.h // 02-好友分组 // #import <UIKit/UIKit.h> @interface GPGroupController : UIViewController @end // // GPGroupController.m // 02-好友分

基于Qt的类似QQ好友列表抽屉效果的实现

前段时间在忙毕业设计,所以一直没有更新博客.今天答辩完以后,将对我的毕业设计进行模块展示,供Qt初学者进行参考. 毕业设计题目:Linux系统下基于Qt的局域网即时通信系统设计与实现 其中我有一个类似于QQ的好友列表,然后对好友可以进行分组管理,毕设中具体效果图如下: 网上查寻到的设计思路: 1.采用QToolBox的方式,虽然看起来有点样子,但是并不是我们所熟悉的好友列表,比如:http://blog.csdn.net/qianguozheng/article/details/6719074

UI基础--UITableView实现仿QQ好友列表页面

需求:类似于QQ好友列表页面的显示,有好友分组,有好友数量,在线人数,vip会员.展开分组时显示分组好友,合并分组时不显示:具体效果图如下: 分析: 1.展开分组时显示分组好友,该功能可以使用显示UITableViewCell的数据即可: 2.分组头可以考虑使用一个headerView来实现: 示例文件结构: 具体实现步骤: 1.自定义数据模型类,由于plist文件中包含了2个字典,所以需要写2个数据模型: 2.自定义cell,属性包括数据模型以及生成可重用cell的方法,由于系统自带的子控件即

[iOS基础控件 - 6.9.3] QQ好友列表Demo TableView

A.需求 1.使用plist数据,展示类似QQ好友列表的分组.组内成员显示缩进功能 2.组名使用Header,展示箭头图标.组名.组内人数和上线人数 3.点击组名,伸展.缩回好友组 B.实现步骤 1.编写MVC结构 (1)根据plist文件结构,编写model,使用嵌套型 1 // 2 // FriendGroup.h 3 // FriendsList 4 // 5 // Created by hellovoidworld on 14/12/12. 6 // Copyright (c) 2014

iOS TableView实现QQ好友列表(三)

上节我们讲到如何展示好友信息 iOS TableView实现QQ好友列表(二) http://blog.csdn.net/lwjok2007/article/details/46549111 接下来我们将分组点击的时候折叠起来. 首先新建一个可变字典用来存储当前列表是否展示 NSMutableArray *selectedArr;//控制列表是否被打开 selectedArr=[[NSMutableArray alloc]init]; 根据前两节所讲,我们讲分组名称放在section的heade