CSS+JS实现很流行的用户列表代码

本文介绍了一种使用CSS和JavaScript实现的用户列表效果,包括切换不同的用户列表类别(如活跃网友和最新加入),并为每个用户提供了丰富的展示信息,如头像、用户名等。
ContractedBlock.gifExpandedBlockStart.gifCode
  1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2<html xmlns="http://www.w3.org/1999/xhtml">
  3<head>
  4<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
  5<title>CSS+JS实现很流行的用户列表代码 - www.webdm.cn</title>
  6ExpandedBlockStart.gifContractedBlock.gif<script type="text/javascript">
  7ExpandedSubBlockStart.gifContractedSubBlock.giffunction nTabs(thisObj,Num){
  8    if(thisObj.className == "active")return;
  9    var tabObj = thisObj.parentNode.id;
 10    var tabList = document.getElementById(tabObj).getElementsByTagName("li");
 11    for(i=0; i <tabList.length; i++)
 12ExpandedSubBlockStart.gifContractedSubBlock.gif    {
 13        if (i == Num)
 14ExpandedSubBlockStart.gifContractedSubBlock.gif        {
 15            thisObj.className = "active";
 16            document.getElementById(tabObj+"_Content"+i).style.display = "block";
 17ExpandedSubBlockStart.gifContractedSubBlock.gif        }
else{
 18            tabList[i].className = "normal";
 19            document.getElementById(tabObj+"_Content"+i).style.display = "none";
 20        }

 21    }

 22}

 23var show_king_id = 1;
 24function show_king_list(e,k)
 25ExpandedSubBlockStart.gifContractedSubBlock.gif{
 26    if(show_king_id == k) return true;
 27        o = document.getElementById("a"+show_king_id);
 28        o.className = "bg";
 29    e.className = " ";
 30    show_king_id = k;
 31}

 32var show_kinga_id = 1;
 33function show_kinga_list(f,l)
 34ExpandedSubBlockStart.gifContractedSubBlock.gif{
 35    if(show_kinga_id == l) return true;
 36        o = document.getElementById("b"+show_kinga_id);
 37        o.className = "bg";
 38    f.className = " ";
 39    show_kinga_id = l;
 40}

 41
</script>
 42ExpandedBlockStart.gifContractedBlock.gif<style type="text/css">
 43ExpandedSubBlockStart.gifContractedSubBlock.gif*{}{
 44margin: 0;
 45padding: 0;
 46}

 47ExpandedSubBlockStart.gifContractedSubBlock.gifbody {}{
 48font-size:12px;
 49font-family:"宋体",Arial, Helvetica, sans-serif;
 50color:#666666;
 51}

 52ExpandedSubBlockStart.gifContractedSubBlock.gif.door_container {}{
 53width:200px;
 54}

 55ExpandedSubBlockStart.gifContractedSubBlock.gif.door_container .TabTitle {}{
 56height:36px;
 57}

 58ExpandedSubBlockStart.gifContractedSubBlock.gif.door_container .TabTitle li {}{
 59list-style:none;
 60float:left;
 61width:77px;
 62height:36px;
 63cursor:pointer;
 64padding-left:2px;
 65line-height:28px;
 66color:#7c7c7c;
 67font-size:14px;
 68text-align:center;
 69font-weight:bold;
 70}

 71ExpandedSubBlockStart.gifContractedSubBlock.gif.door_container .TabTitle .active {}{
 72color:#000;
 73background:#CC9999;
 74}

 75ExpandedSubBlockStart.gifContractedSubBlock.gif.door_container .TabTitle .normal {}{
 76color:#7c7c7c;
 77}

 78ExpandedSubBlockStart.gifContractedSubBlock.gif.door_container .TabContent {}{
 79width:198px;
 80}

 81ExpandedSubBlockStart.gifContractedSubBlock.gif.none {}{
 82display: none;
 83}

 84ExpandedSubBlockStart.gifContractedSubBlock.gif.star{}{
 85width:198px;
 86overflow:hidden;
 87white-space:nowrap;
 88text-overflow:ellipsis;
 89}

 90ExpandedSubBlockStart.gifContractedSubBlock.gif.star dl{}{
 91width:198px;
 92margin:5px 0;
 93float:left;
 94}

 95ExpandedSubBlockStart.gifContractedSubBlock.gif.star dl dd{}{
 96float:left;
 97margin-left:8px;
 98line-height:18px;
 99}

100ExpandedSubBlockStart.gifContractedSubBlock.gif.star dl dt{}{
101float:left;
102}

103ExpandedSubBlockStart.gifContractedSubBlock.gif.bg{}{
104width:198px;
105margin:5px 0;
106background:#eee;
107float:left;
108}

109ExpandedSubBlockStart.gifContractedSubBlock.gif.sl01{}{
110background:#eee;
111margin:15px 5px 0 0;
112width:25px;
113height:18px;
114padding-top:7px;
115text-align:center;
116font-weight:bold;
117color:#FF0000;
118}

119ExpandedSubBlockStart.gifContractedSubBlock.gif.sl02 img{}{
120border:1px solid #ccc;
121padding:3px;
122}

123ExpandedSubBlockStart.gifContractedSubBlock.gif.sl03 a{}{
124color:#0066CC;
125text-decoration:underline;
126}

127ExpandedSubBlockStart.gifContractedSubBlock.gif.sl03 a:hover{}{
128color:#FF3300;
129text-decoration:none;
130}

131ExpandedSubBlockStart.gifContractedSubBlock.gif.sl04{}{
132background:#eee;
133}

134ExpandedSubBlockStart.gifContractedSubBlock.gif.sl05{}{
135}

136ExpandedSubBlockStart.gifContractedSubBlock.gif.bg .sl01{}{
137background:#0066cc;
138margin:5px 5px 0 0;
139width:25px;
140height:18px;
141padding-top:7px;
142text-align:center;
143font-weight:bold;
144color:#FF0000;
145}

146ExpandedSubBlockStart.gifContractedSubBlock.gif.bg .sl02 img{}{
147display:none;
148}

149ExpandedSubBlockStart.gifContractedSubBlock.gif.bg  .sl03{}{
150width:140px;
151}

152ExpandedSubBlockStart.gifContractedSubBlock.gif.bg  .sl04{}{
153background:#eee;
154width:140px;
155}

156ExpandedSubBlockStart.gifContractedSubBlock.gif.bg .sl05{}{
157display:none;
158}

159
</style>
160</head>
161<body>
162<div class="door_container">
163    <div class="TabTitle">
164        <ul id="myTab">
165            <li class="active" onmouseover=nTabs(this,0);>活跃网友</li>
166            <li class="normal" onmouseover=nTabs(this,1);>最新加入</li>
167        </ul>
168    </div>
169    <div class="TabContent">
170        <div id=myTab_Content0>
171            <div class="star">
172                <dl id=a1 onmouseover=show_king_list(this,1);>
173                    <dt class="sl01">01</dt>
174                    <dt class="sl02"><href="#"><img src="http://reimg.360quan.com/50/50/stretch/d.image.360quan.com/user/6/146/611/1466112.gif" alt="" /></a></dt>
175                    <dd class="sl03"><href="#">网页代码站</a></dd>
176                    <dd class="sl04">26岁·河南 郑州</dd>
177                    <dd class="sl05">人气:5236</dd>
178                </dl>
179                <dl class=bg id=a2 onmouseover=show_king_list(this,2);>
180                    <dt class="sl01">01</dt>
181                    <dt class="sl02"><href="#"><img src="http://reimg.360quan.com/50/50/stretch/d.image.360quan.com/user/6/146/611/1466112.gif" alt="" /></a></dt>
182                    <dd class="sl03"><href="#">网页代码站</a></dd>
183                    <dd class="sl04">26岁·河南 郑州</dd>
184                    <dd class="sl05">人气:5236</dd>
185                </dl>
186                <dl class=bg id=a7 onmouseover=show_king_list(this,7);>
187                    <dt class="sl01">01</dt>
188                    <dt class="sl02"><href="#"><img src="http://reimg.360quan.com/50/50/stretch/d.image.360quan.com/user/6/146/611/1466112.gif" alt="" /></a></dt>
189                    <dd class="sl03"><href="#">源码爱好者</a></dd>
190                    <dd class="sl04">26岁·河南 郑州</dd>
191                    <dd class="sl05">人气:5236</dd>
192                </dl>
193                <dl class=bg id=a10 onmouseover=show_king_list(this,10);>
194                    <dt class="sl01">01</dt>
195                    <dt class="sl02"><href="#"><img src="http://reimg.360quan.com/50/50/stretch/d.image.360quan.com/user/6/146/611/1466112.gif" alt="" /></a></dt>
196                    <dd class="sl03"><href="#">网页代码站</a></dd>
197                    <dd class="sl04">26岁·河南 郑州</dd>
198                    <dd class="sl05">人气:5236</dd>
199                </dl>
200            </div>
201        </div>
202        <div class="none" id=myTab_Content1>
203            <div class="star">
204                <dl  id=b1 onmouseover=show_kinga_list(this,1);>
205                    <dt class="sl01">01</dt>
206                    <dt class="sl02"><href="#"><img src="http://reimg.360quan.com/50/50/stretch/d.image.360quan.com/user/1/122/751/1227510.gif" alt="" /></a></dt>
207                    <dd class="sl03"><href="#">我心永恒</a></dd>
208                    <dd class="sl04">26岁·河南 郑州</dd>
209                    <dd class="sl05">人气:5236</dd>
210                </dl>
211                <dl class=bg id=b4 onmouseover=show_kinga_list(this,4);>
212                    <dt class="sl01">01</dt>
213                    <dt class="sl02"><href="#"><img src="http://reimg.360quan.com/50/50/stretch/d.image.360quan.com/user/6/146/611/1466112.gif" alt="" /></a></dt>
214                    <dd class="sl03"><href="#">我心永恒</a></dd>
215                    <dd class="sl04">26岁·河南 郑州</dd>
216                    <dd class="sl05">人气:5236</dd>
217                </dl>
218                <dl class=bg id=b5 onmouseover=show_kinga_list(this,5);>
219                    <dt class="sl01">01</dt>
220                    <dt class="sl02"><href="#"><img src="http://reimg.360quan.com/50/50/stretch/d.image.360quan.com/user/6/146/611/1466112.gif" alt="" /></a></dt>
221                    <dd class="sl03"><href="#">我心永恒</a></dd>
222                    <dd class="sl04">26岁·河南 郑州</dd>
223                    <dd class="sl05">人气:5236</dd>
224                </dl>
225                <dl class=bg id=b6 onmouseover=show_kinga_list(this,6);>
226                    <dt class="sl01">01</dt>
227                    <dt class="sl02"><href="#"><img src="http://reimg.360quan.com/50/50/stretch/d.image.360quan.com/user/6/146/611/1466112.gif" alt="" /></a></dt>
228                    <dd class="sl03"><href="#">我心永恒</a></dd>
229                    <dd class="sl04"></dd>
230                    <dd class="sl05">人气:5236</dd>
231                </dl>
232            </div>
233        </div>
234    </div>
235</div>
236</body>
237</html>
238
239

转载于:https://www.cnblogs.com/jizhitao/archive/2009/10/13/1582631.html

最近所做的一个项目需要用到的在线用户列表,上网搜索了一下发现现有的解决方案对用户意外退出的处理均不是太理想。一般来说,用户离开系统的方式有三种:主动注销、会话超时、直接关闭浏览器,对于前两种,我们很容易便可将该用户从在线列表中清除,关键是第三种(很多用户都是直接关闭窗口的~~郁闷ing),程序无法捕获窗口关闭的精确时间,只能等到会话超时后在能将该用户清除出在线列表,假设我们设置会话超时时间为60分钟,而用户登陆系统随便浏览一个页面就以关闭浏览器的方式退出的话,我们要在将近1小时后才能从在线列表中将该用户清除出去(想象一下,系统显示n多人在线,可能除了你之外其他的n-1人都关机走人了,汗一个先```),而本文将尝试寻找一个解决方案把这种尴尬降至最低。 我的大概思路是,给每在线用户增加一个RefreshTime属性,建立一个负责将当前用户的RefreshTime属性设置为当前时间的单独页面(Refresh.aspx),然后在系统的主要页面(也可以是所有页面)中通过xmlhttp不断地请求Refresh.aspx页面,一旦用户关闭了与本系统相关的所有窗口,即以直接关闭浏览器的方式退出系统,那么该用户的RefreshTime属性便不会自动更新了,我们再设置一个自动刷新的超时时间(这个要比会话超时短很多_refreshTimeout),当发现某用户超过_refreshTimeout的时间没有自动刷新,就能判定该用户已经以直接关闭浏览器的方式退出了。 假设我们设置会话超时时间为60分钟,自动刷新超时时间为1分钟,在客户端通过xmlhttp每隔25秒(之所以不设1分钟,是防止网速慢的时候访问Refresh.aspx超时,个人感觉,不一定正确)访问一次Refresh.aspx页面,在用户登陆、用户注销、检测用户是否在线的时候都执行清理超时用户(包括会话超时和自动刷新超时)操作,这样一来,在线用户列表的统计误差就由60分钟降至1分钟了。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值