博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
毕业设计的设计部分笔记6,高阶设计3
阅读量:4120 次
发布时间:2019-05-25

本文共 2268 字,大约阅读时间需要 7 分钟。

 

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
>

转载地址:http://henpi.baihongyu.com/

你可能感兴趣的文章
书评:《C# Primer》 by Joe Casad
查看>>
谈谈数独(Sudoku)
查看>>
为 bash 添加 auto_cd 功能:如果命令行是一个目录,则进入该目录
查看>>
Google 开源了自己的 C++ 单元测试框架 : googletest
查看>>
C1000k 新思路:用户态 TCP/IP 协议栈
查看>>
以boost::function和boost:bind取代虚函数
查看>>
SystemC——一套将C++扩展为硬件描述语言的Class Library (初学SystemC有感)
查看>>
借shared_ptr实现copy-on-write
查看>>
SystemC 初始化步骤
查看>>
书摘几则
查看>>
Build the Hack CPU with Verilog
查看>>
在 Boolan 网开讲《Linux 网络编程实战》课程
查看>>
C++ 标准库中的allocator是多余的
查看>>
用CodeViz绘制函数调用关系图(call graph)
查看>>
分析函数调用关系图(call graph)的几种方法
查看>>
利用Bresenham算法控制多部步进电机匀速转动
查看>>
关于在FPGA上实现AES算法的笔记
查看>>
《C# Primer 中文版》探讨
查看>>
带符号整数的除法与余数
查看>>
算法复杂度攻击
查看>>