[分享]选项卡组件代码

这是以前编写后整理出来的一个选项卡组件代码,个人使用感觉还是不错的,挺好用的,现分享一下!

选项卡组件createTab.js代码如下:

  1. /**
  2.  *传入参数说明:
  3.  *1、传入参数数量不限,但要符合3*n+1(n>0)的规则
  4.  *2、第一个参数为进入后默认显示的选项卡索引,索引值从0开始
  5.  *3、后续参数每3个为一组,分别为:
  6.  *  A、选项卡名称
  7.  *  B、选项卡对应元素没有tab前缀的id,对应元素以tab为前缀
  8.  *  C、选项卡宽度,缺省为75px,可指定固定值或百分比
  9.  *4、使用示例initTabs(0,"名称1","ElementId1","100","名称2","ElementId2","20%");
  10.  *  
  11.  **/
  12. //初始化选项卡
  13. function initTabs()
  14. {
  15.     var colorBorder="#C0C0C0";  //边框颜色
  16.     var colorSelected="#000000";    //选定选项卡字体颜色
  17.     var colorUnSelected="#000000";  //未选定选项卡字体颜色
  18.     var bg="#FFFFFF";       //选项卡背景
  19.     var bgUnSelected="#DEDFEF"//未选定选项卡背景
  20.     var font="宋体";      //选项卡字体名称
  21.     var fontSize="12px";        //选项卡字体大小
  22.     
  23.     var borderStyle="solid 1px " + colorBorder;
  24.     var tabSlected="background:" + bg + ";font-family:" + font + ";font-size:" + fontSize + ";color:" + colorSelected;
  25.     var tabUnSlected="background:" + bgUnSelected + ";font-family:" + font + ";font-size:" + fontSize + ";color:" + colorUnSelected + ";border-bottom:" + borderStyle;
  26.     var bgStyle="border-bottom:" + borderStyle + ";background:" + bg;
  27.     var len=arguments.length;
  28.     var index=arguments[0];
  29.     document.write("<table border=0 id=tabs cellspacing=0 cellpadding=0 width=100% style='table-layout:fixed'><tr height=21px valign=bottom index=" + index + ">");
  30.     index=index*3+1;
  31.     for(var i=1;i<len;i+=3)
  32.     {
  33.         document.write("<td width=1px style='" + bgStyle + "'><input style='width:1px;height:20px;border:" + borderStyle + "'></td>");
  34.         document.write("<td onclick='onClickTab(this)' id='td" + arguments[i+1] + "' width=" + (arguments[i+2]=="" ? "72":arguments[i+2]) + "px valign=middle align=center style='cursor:hand;border-top:" + borderStyle + ";" + (index==i ? tabSlected:tabUnSlected) + "'>" + arguments[i] + "</td>");
  35.         document.write("<td width=1px style='" + bgStyle + "'><input style='width:1px;height:20px;border:" + borderStyle + "'></td>");
  36.         document.write("<td width=2px style='" + bgStyle + "'><input style='height:1px;visibility:hidden'></td>");
  37.     }
  38.     document.write("<td style='" + bgStyle + "'> </td></tr><tr height=8px></tr></table>");
  39. }
  40. //点击响应事件
  41. function onClickTab(src)
  42. {
  43.     var tr=src.parentElement;
  44.     var oldIndex=tr.index,index=(src.cellIndex-1)/4;
  45.     if(oldIndex==index)return false;
  46.     var obj=tr.cells[oldIndex*4+1];
  47.     var text=obj.style.cssText;
  48.     obj.style.cssText=src.style.cssText;
  49.     src.style.cssText=text;
  50.     if(src.colorbak)
  51.     {
  52.         text=obj.style.color;
  53.         obj.style.color=src.colorbak;
  54.         src.colorbak=text;
  55.     }
  56.     if(obj.colorbak)
  57.     {
  58.         text=obj.style.color;
  59.         obj.style.color=obj.colorbak;
  60.         obj.colorbak=text;
  61.     }
  62.     var tabid=src.id.substring(2);
  63.     if(document.all('if' + tabid)!=null)
  64.     {
  65.         if(document.all('if' + tabid).name!="" && document.all('if' + tabid).name!=document.all('if' + tabid).src)
  66.         {
  67.             document.all('if' + tabid).removeAttribute("src");
  68.             document.all('if' + tabid).setAttribute("src",document.all('if' + tabid).name);
  69.         }
  70.     }
  71.     
  72.     obj=document.all('tab' + obj.id.substring(2));
  73.     if(obj)obj.style.display="none";
  74.     obj=document.all('tab' + src.id.substring(2));
  75.     if(obj)
  76.     {
  77.         obj.style.display="";
  78.         obj.focus();
  79.         window.setTimeout("document.all('tab" + src.id.substring(2) + "').focus()",1);
  80.     }
  81.     tr.index=index;
  82. }

测试页面test.html代码如下:

  1. <HTML>
  2.  <HEAD>
  3.   <TITLE> 选项卡例子 </TITLE>
  4.   <script src="createTab.js"></script>
  5.  </HEAD>
  6.  <BODY>
  7.     <script>initTabs(0,"基本信息","basic","","办理单","outline","","督查反馈","feedback","","查看意见","opinion","","查看流程","flow","")</script>
  8.     <table id=tabbasic border=0 width=100%>
  9.       <tr><td align=center>基本信息</td></tr>
  10.     </table>
  11.     <div id=taboutline width=100% style="display:none">
  12.       <!--嵌套子选项卡-->
  13.       <script>initTabs(0,"来文单位","unit","","主题词","keyword","","系统参数","system","")</script>
  14.       <table id=tabunit border=0 width=100%>
  15.         <tr>
  16.           <td>来文单位</td>
  17.         </tr>
  18.       </table>
  19.       <table id=tabkeyword border=0 width=100% style="display:none">
  20.         <tr>
  21.           <td>主题词</td>
  22.         </tr>
  23.       </table>
  24.       <table id=tabsystem border=0 width=100% style="display:none">
  25.         <tr>
  26.           <td>系统参数</td>
  27.         </tr>
  28.       </table>
  29.     </div>
  30.     <table id=tabfeedback border=0 width=100% style="display:none">
  31.       <tr>
  32.         <td>督查反馈</td>
  33.       </tr>
  34.     </table>
  35.     <div id=tabopinion width=100% style="display:none">
  36.       <script>initTabs(0,"签   名","sign","60","领导批示","leader","200","其它意见","other","50%")</script>
  37.       <!--嵌套子选项卡, 设置选项卡宽度,宽度可为空值、百分比或数值,空值默认为72-->
  38.       <table id=tabsign border=0 width=100%>
  39.         <tr>
  40.           <td>签   名</td>
  41.         </tr>
  42.       </table>
  43.       <div id=tableader width=100% style="display:none">
  44.         <script>initTabs(0,"国家领导","country","","省级领导","province","","单位领导","local","")</script>
  45.         <table id=tabcountry border=0 width=100%>
  46.           <tr>
  47.             <td>国家领导</td>
  48.           </tr>
  49.         </table>
  50.         <table id=tabprovince border=0 width=100% style="display:none">
  51.           <tr>
  52.             <td>省级领导</td>
  53.           </tr>
  54.         </table>
  55.         <table id=tablocal border=0 width=100% style="display:none">
  56.           <tr>
  57.             <td>单位领导</td>
  58.           </tr>
  59.         </table>
  60.       </div>
  61.       <table id=tabother border=0 width=100% style="display:none">
  62.         <tr>
  63.           <td>其它意见</td>
  64.         </tr>
  65.       </table>
  66.     </div>
  67.     <table id=tabflow border=0 width=100% style="display:none">
  68.       <tr>
  69.         <td>查看流程</td>
  70.       </tr>
  71.       <tr>
  72.         <td><iframe id=ifflow name="iframe.htm" src=""></iframe></td>
  73.       </tr>
  74.     </table>
  75.  </BODY>
  76. </HTML>

猜你喜欢

转载自blog.csdn.net/cgs1999/article/details/2784977