本文共 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代码的,来寻找div的identify。
这段代码如下:
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)" > < a 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/