Web页面中TabView的作用 1.将TabView分为菜单和内容两个部分 Tabview,顾名思义,就是一个tab加上一个view,tab用无序列表构造的菜单来实现,view则用div来实现即可.在Web中这样设计实现Tabview比较快捷,如果象可视化编程环境那样用动态隐藏和显示每个tab对应的view则耗时比较长,有些得不偿失. <!-- 选项卡代码开始 -->
<table border=0 cellspacing="0" cellpadding="0" height="100%" width="100%"> <tr height="20"><td width="100%"> <div id="tabsHeader"> <ul> <li><a href='javascript:changeTab("date")' id="date"><span>定时取日期</span></a></li> <li><a href='javascript:changeTab("time")' id="time" class="current"><span class="current">定时取日期时间</span></a></li> <li><a href='javascript:changeTab("random")' id="random"><span>定时取随机数</span></a></li> </ul> </div> </td></tr> <tr height="98%" valign="top"><td width="100%"> <div id="tabsBody"> <p>点击每个选项卡</p> <p>程序将使用Ajax从服务器端获得新数据并显示在内容中</p> <p></p> <p></p> <p></p> </div> </td></tr> </table> <!-- 选项卡代码结束 --> tabsHeader的CSS定义
#tabsBody{}{
width:460px; height:92%; padding:10px; border-left:1px solid #2763A5; border-right:1px solid #2763A5; border-top:1px solid #2763A5; border-bottom:1px solid #2763A5; } 2.点击选项卡更换内容的处理 在可视化编程环境中点击选项卡是切换view,在web要这样实现不是不可以,只是有点费力不讨好,其实直接把tabsBody DIV的innerHTML更换掉就实现了view切换的效果. 更换内容的示例代码 // 取得返回文字
var subInnerHTML=ajaxObj.responseXML.getElementsByTagName("content")[0].xml; // 给选项页设置文字 var tabsBodyDiv=document.getElementById("tabsBody"); tabsBodyDiv.innerHTML=subInnerHTML;
Tabview还有一个视觉上的功能是突出显示当前选项卡,这个我们可以通过JS修改菜单的class来实现. Tabview还有一个视觉上的功能是突出显示当前选项卡,这个我们可以通过JS动态修改菜单的class来实现.
菜单的代码如下: <div id="tabsHeader"> <ul> <li><a href='javascript:changeTab("date")' id="date"><span>定时取日期</span></a></li> <li><a href='javascript:changeTab("time")' id="time" class="current"><span class="current">定时取日期时间</span></a></li> <li><a href='javascript:changeTab("random")' id="random"><span>定时取随机数</span></a></li> </ul> </div>
function changeTab(id){
var tabs10Div=document.getElementById("tabsHeader"); // 将所有链接标签重置 var linkNodes=tabs10Div.getElementsByTagName("a"); for(var i=0;i<linkNodes.length;i++){ linkNodes[i].className=""; } // 将所有Span标签重置 var spanNodes=tabs10Div.getElementsByTagName("span"); for(var i=0;i<spanNodes.length;i++){ spanNodes[i].className=""; } // 将当前选择的链接置深 var currentLink=document.getElementById(id); currentLink.className="current"; // 将当前选择的Span置深 var currentSpan=currentLink.getElementsByTagName("span")[0]; currentSpan.className="current"; ajaxObj=createAjaxObject(); var url=prjName+"FetchText?id="+id; // alert(ajaxObj); ajaxObj.open("Get",url,true); ajaxObj.onreadyStateChange=changeTabCallBack; ajaxObj.send(null); } 代码下载: http://www./Files/sitinspring/TabView20080506114949.zip |
|