|
DHTML实例解析:模拟Windows选项卡 ~ admin
下面是一个用javascript控制css模拟windows选项卡的实例,在IE5/IE6中调试通过,这只是一个简单的例子,实际使用中可以再美化一下,比如在“面板”中加上有凸凹效果的框。
下面我们将描述一下实现的具体过程,我们先把要点说清楚,最后给出代码。
整个“面板”的样式实现 或许,我们首先关心的是整个能看到的样子是怎么实现的。其实就是一个表格,通过用CSS设置表格及单元格的边框以及背景色实现的,我们可以看一下CSS代码: .sec1 {
background-color: #EEEEEE;
cursor: hand;
color: #000000;
border-left: 1px solid #FFFFFF;
border-top: 1px solid #FFFFFF;
border-right: 1px solid gray;
border-bottom: 1px solid #FFFFFF
} /*选项卡按钮正常状态下的样式*/
.sec2 {
background-color: #D4D0C8;
cursor: hand;
color: #000000;
border-left: 1px solid #FFFFFF;
border-top: 1px solid #FFFFFF;
border-right: 1px solid gray;
font-weight: bold;
} /*选项卡按钮被按下(即当前被选中)的样式*/
.main_tab {
background-color: #D4D0C8;
color: #000000;
border-left:1px solid #FFFFFF;
border-right: 1px solid gray;
border-bottom: 1px solid gray;
表格部分的实现见下图: ![]() ![]() 相信这个表格大家是很容易看清楚的,就不再多讲。代码将在后面给出。最关键的,是如何用这两个表格实现一个动态效果,就是实际的选项卡的效果。下面我们就来看看。 实际效果的实现 几个要点,最初的例子中都写出来了,tbody、tbodies、cells、display,这里就不再多讲。有一点要说明的是:事实上,tbodies集合就是一个table中tbody块的个数,cells就是一个table中td的个数。 下面我们来看看实现最后效果的JavaScript函数: function secBoard(n) //参数n表示点击的是哪一个按钮 { for(i=0;i//通过循球让所有按钮变为未选中状态 secTable.cells[n].className="sec2"; //把点击的按钮变为选中状态 for(i=0;i//先让所有的单元格变为隐藏状态 mainTable.tBodies[n].style.display="block"; //根据哪一个按钮被点击,让对应的单元格显示 } |