回味一下——仿2008QQ面板导航

走过了2010,一直以来,QQ伴随着我们这一代人的成长。依然记得高中时候在机房上信息课时,背着老师偷偷着带劲儿聊着Q。那会儿,网聊是一种时尚,更是潮流。记得有过飘云版,有过珊瑚虫版,还有显IP的彩虹版。后来的08,09,10版功能不断更新,界面愈加友好,可我们已经习惯了隐身,习惯了沉默。 尘封的日子消逝,逝去的年华不再!亦人,亦物。还有多少记得08版的QQ面板?想起了我们TeamOne小组那会儿的日子^^ 

 

仿2008面析导航 
<html xmlns="http://www.w3.org/1999/xhtml">
<!-- TeamOne小组 2009-4-16 -->
<head>
<style type="text/css">
.titleStyle
{
background-color
:#008800;color:#ffffff;
border-top
:1px solid #FFFFFF;font-size:9pt;cursor:hand;
}
.contentStyle
{
background-color
:#eeffee;color:blue;font-size:9pt;
}
</style>

<title>js导航图片滑动效果</title></head>
<body>
<script type="text/javascript">
<!--
var layerTop=20; //菜单顶边距
var layerLeft=30; //菜单左边距
var layerWidth=140; //菜单总宽度
var titleHeight=20; //标题栏高度
var contentHeight=200; //内容区高度
var stepNo=10; //移动步数,数值越大移动越慢
var itemNo=0;
//建立一个名为"itemsLayer"的层,用它限制所有菜单的显示范围:
document.write('<span id=itemsLayer style="position:absolute;
overflow:hidden;border:1px;solid #008800;left:'+
layerLeft+';top:'+layerTop+';width:'+layerWidth+';">');
function addItem(itemTitle,itemContent){
//这个函数准备接受菜单标题和内容的写入
//新增菜单的顶点刚好在上一菜单的标题栏以下,尺寸由一开始便声明的变量决定
itemHTML='<div id=item'+itemNo+' itemIndex='+itemNo+
'style="position:relative;left:0;top:'+(-contentHeight*itemNo)+
';width:'+layerWidth+';">'+'<table width=100% cellspacing="0" cellpadding="0">'+
'<tr><td height='+titleHeight+' onclick=changeItem('+itemNo+') class="titleStyle"
align=center>'+itemTitle+'</td></tr>'+'<tr><td height='+contentHeight+
' class="contentStyle">'+itemContent+'</td></tr> </table></div>';
document.write(itemHTML);
itemNo
++;
}
//这时便可以把菜单标题和内容作为参数调用以上函数了:
//可以添加任意多项,格式参照以下几行:

addItem(
'欢迎','<center><BR>欢迎光临个人乐园!</center>');
addItem(
'焦点动态','<center><a href="#">项目1</a> <BR><BR><a href="#">项目2</a>
<BR><BR><a href="#">项目3</a> <BR><BR><a href="#">更多..</a></center>');
addItem(
'美工教室','<center><a href="#">项目</a> <BR><BR><a href="#">项目</a>
<BR><BR><a href="#">项目</a> <BR><BR><a href="#">更多..</a></center>');
addItem(
'Flash','<center><a href="#">项目</a> <BR><BR><a href="#">项目</a>
<BR><BR><a href="#">项目</a> <BR><BR><a href="#">更多..</a></center>');
addItem(
'多媒体','<center><a href="#">项目</a> <BR><BR><a href="#">项目</a>
<BR><BR><a href="#">项目</a> <BR><BR><a href="#">更多..</a></center>');
addItem(
'精品赏析','<center><a href="#">设计精品</a></center>');
document.write(
'</span>'); //结束"itemsLayer"层

//下面一式计算"itemsLayer"层的高度:
document.all.itemsLayer.style.height =itemNo*titleHeight+contentHeight;
//现在开始编写点击标题时移动相应的层:
//初始化变量"toItemIndex"和"onItemIndex",
//
它们分别用于记录"应该显示的层"和"现在显示的层":
var toItemIndex=itemNo-1;
var onItemIndex=itemNo-1;
var runtimes=0; //"runtimes"用于记录层移动次数
//菜单标题被点击时调用这个函数:
function changeItem(clickItemIndex){
//判断相应的层应上移还是下移:
toItemIndex=clickItemIndex;
if(toItemIndex-onItemIndex>0) moveUp(); else moveDown();
//一定的时间间隔后继续移动,直到移了设定的步数stepNo:
runtimes++;
if(runtimes>=stepNo){
onItemIndex
=toItemIndex;
runtimes
=0;}
else
setTimeout(
"changeItem(toItemIndex)",10);
}
//相应菜单上移:
function moveUp(){
//判断应一起上移的菜单,并让它(们)每次移动contentHeight/stepNo的距离:
for(i=onItemIndex+1;i<=toItemIndex;i++)
eval(
'document.all.item'+i+'.style.top=parseInt(document.all.item'+i+
'.style.top)-contentHeight/stepNo;');
}
//相应菜单下移:
function moveDown(){
for(i=onItemIndex;i>toItemIndex;i--)
eval(
'document.all.item'+i+'.style.top=parseInt(document.all.item'+i+
'.style.top)+contentHeight/stepNo;');
}
changeItem(
0); //把第一个菜单作为默认显示
//-->
</script>

</body>
</html>

源件下载:

posted @ 2011-01-27 22:28  facing  阅读(375)  评论(0)    收藏  举报