毕业设计的设计部分笔记6,高阶设计3

本文介绍了一种使用HTML、CSS和JavaScript实现Tab切换效果的方法。通过简单的DOM操作和内联样式更改,实现了不同Tab内容的动态显示与隐藏。此方案避免了动态生成JS代码,简化了开发流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

Ok。下面就开始分析复杂component了。

 

复杂的component现在开始考虑这几个:

Table

Tree

Tab

Togglebutton

Menu

 

我们先来考虑前两个吧。

一个是table,一个是tree

Table是这样的。

HTML中,table为:


<table>

<!--- 如果有表头 ---->

<tr>

<th></th>

<th></th>

</tr>

 

<!--- 内容 ---->

<tr>

<td></td>

<td></td>

</tr>

</table>


其实table翻译起来很容易。因为有些只需要根据xml_parser就可以实现这个。

 

我先写一些关于tab的东西。

就是说,如何去实现这个tab。现在的想法是:tab base on table.

也就是这样的一个table

Tab1

Tab2

。。。

 

 

<div id=xxx>

 

 

</div>

这样,通过点击tab,执行js,然后用innerHTML来更新处理。

 

这里找到了一个不错的代码:

参见:tab_try1.html

这段代码可以很简单的应用为tab,使用的不是table而是用的<ul>以及div做的,相当不错,最后用css做了边框和link。特别的,他不用动态生成js代码,这个很重要,因为js代码不能动态生成,但是如果用table的话需要动态生成js代码的,来寻找dividentify

这段代码如下:

function findA(obj)
{
         TagA
=obj.getElementsByTagName("a");
         
if (TagA.length>0)
        
return TagA[0];
}


function findContentDIV(obj)
{
        TagDiv
=obj.childNodes;
        
var arrDiv = new Array;
        
for(i=0;i<TagDiv.length;i++)
         
{
                
var objDiv = TagDiv[i];
                
var re = /div/i;
                
var arr = re.exec(objDiv.tagName);
                
if(arr != null)
               
{
                        
if(arr.index == 0)
                       
{
                               arrDiv.push(objDiv);
                      }

                }
    
        }

        
return arrDiv;
}


function chShift(o)
{
        o.style.cursor
="pointer";
        
var t=o.parentNode;
        
var tA=t.getElementsByTagName("a");   
        
var tParent=t.parentNode;
        
var tParentDIV=findContentDIV(tParent);

        
for(i=0;i<tA.length;i++)
        
{
                tA[i].className
= null;   
                tParentDIV[i].style.display
="none";
                
if(tA[i]==findA(o))
                
{
                        tA[i].className
="on";
                        tParentDIV[i].style.display
="block";
                }

        }

}

 css:

 ul
    
{
    margin
:0;
    padding
:0;
    list-style-type
:none;
    height
:24px;
    
}

    ul li
    
{
    float
:left;
    display
:inline;
    
}

    ul a
    
{
    text-decoration
: none;
    border-top
:1px solid #ddd;
    border-bottom
:1px solid #ccc;  
    border-left
:1px solid #ddd;
    border-right
:1px solid #ddd;
    display
: block;
    padding
: 5px 0 3px;
    margin-left
:-1px;
    width
:258px;
    font-weight
: bold;
    text-align
:center;
    line-height
:15px;
    color
: #11449E;
    
}


    a.on,a:hover
    
{
    padding-top
: 6px;
    padding-bottom
:3px;
    width
:259px;
    border
: 1px solid #ccc;
    border-bottom
: 0;
    background
:#DEEBFF;
    
}

  应用代码:
<body>

<div>
        
<ul>
                  
<li onmouseover="javascript:chShift(this)">
                           
<class="on">Tab标题一</a>
                 
</li>
                 
<li onmouseover="javascript:chShift(this)">
                           
<a>Tab标题二</a>
                 
</li>
                 
<li onmouseover="javascript:chShift(this)">
                             
<a>Tab标题n</a>
                  
</li>
        
</ul>
        
<div>Tab标题一对应的内容</div>
        
<div>Tab标题二对应的内容</div>
        
<div>Tab标题n对应的内容</div>
</div>
</body>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值