javascript+css 标签显示方式的思考

来源:互联网 发布:淘宝店图片制作ps教程 编辑:程序博客网 时间:2024/05/08 18:04
javascript,来动态改变div的显示和隐藏.来看看人家写的JS代码吧:
  1. <script type="text/javascript">
  2. //<![CDATA[
  3.          //标签的数组,如果让我写,我想不到会用这个保存
  4.     var tabArray = new Array();
  5.          //默认显示哪个标签
  6.     function showDefaultTab(){
  7.         //show 'Description' tab by default, else show first
  8.         if(!showTab('item1')){
  9.             displayToggle(tabArray[0]+"_container",true,'container on');
  10.             document.getElementById(tabArray[0]).className = 'selected';
  11.         }
  12.     }
  13.          //改变内容盒的隐显,并重绘显示样式:感觉有点像配适器模式
  14.     function showTab(tabID){
  15.         var found = false;
  16.         for(var i=0; i < tabArray.length; i++){
  17.             if(tabArray[i] != tabID){
  18.                 displayToggle(tabArray[i]+"_container",false'container');
  19.                 document.getElementById(tabArray[i]).className = '';
  20.             }else{
  21.                 displayToggle(tabArray[i]+"_container",true,'container on');
  22.                 document.getElementById(tabArray[i]).className = 'selected';
  23.                 found = true;
  24.             }
  25.         }
  26.         return found;
  27.     }
  28.     //showtab函数会调用这个函数来隐显内容盒        
  29.     function displayToggle(id, show, newClass){
  30.         var obj = document.getElementById(id);
  31.         if(obj != null){                
  32.             if(show){
  33.                 obj.style.visibility="visible";
  34.                 obj.style.display="block";
  35.             }else{
  36.                 obj.style.visibility="hidden";
  37.                 obj.style.display="none";
  38.             }
  39.             if(newClass != null)
  40.                 obj.className = newClass;
  41.         }
  42.     }
  43. //]]>
  44. </script>

看看HTML的代码吧!相信大家都猜了个大概:

  1.     <div id="sitepage">
  2.         <div id="productBSS" class="tabwidget">
  3.             <ul class="tabs">
  4.                 <li id="item1">
  5.                     <a id="info3" href="#info3" onclick="showTab('item1'); return false;">Description</a>
  6.                 </li>
  7.                 <script language="JavaScript">
  8.                     tabArray.push('item1');
  9.                 </script>
  10.                 <li id="item2">
  11.                     <a id="info8" href="#info8" onclick="showTab('item2'); return false;">Sample Content</a>
  12.                 </li>
  13.                 <script language="JavaScript">
  14.                     tabArray.push('item2');
  15.                 </script>
  16.             </ul>
  17.         </div>
  18.         <div id="bssContent">
  19.             <div id="item1_container">
  20.                 <!--detail content-->
  21.             </div>
  22.             <div id="item2_container">
  23.                 <!--detail content-->
  24.             </div>
  25.         </div>
  26.        <script language="JavaScript">
                  showDefaultTab();
           </script>
  27.     </div>

最后是CSS的样式定义:

  1. <style type="text/css">
  2. <!--
  3. body {margin:150px 0 0 0;font-size:0.8em;font-family:"Lucida Grande"ArialHelveticasans-serif;}
  4. div#sitepage{ margin:0 0 0 184pxpadding:0width:400px;height:auto;}
  5. div#productBSS { clear:both; }
  6. div#bssContent { margin:-1px 0 0 0padding:1emborder-right:1px solid #C7C8CAborder-left:1px solid #C7C8CA;  border-bottom:1px solid #C7C8CAborder-top:1px solid #C7C8CA; }
  7. /* - Tab Widget (blog sidebar) - */
  8. div.tabwidget { border-left1px solid #C7C8CApositionrelative; }
  9. /* tab control */
  10. div.tabwidget ul.tabs { list-stylenonemargin0padding0 0 1px 0height2emborder-bottom1px solid #C7C8CA; }
  11. div.tabwidget ul.tabs li { displayblockfloatleftbackground-color:#EEEborder1px solid #C7C8CAborder-width1px 1px 1px 0padding0 1emline-height2emmargin0; }
  12. div.tabwidget ul.tabs li.selected { background-color#FFFborder-bottom1px solid #FFF; }
  13. /* layer control */
  14. div.tabwidget div.container { displaynoneclearbothborder1px solid #C7C8CAborder-width0 1px 1px 0positionrelative; }
  15. div.tabwidget div.on { displayblock; }
  16. /* Content control */
  17. :link,:visited { text-decoration:none; }
  18. a:link { color:#004F7F; } 
  19. a:visited { color:#2E87B2; }
  20. a:hover, a:active { color:#004F7Ftext-decoration:underline; }
  21. -->
  22. </style>

最值的学习的是:javascript数组在这过程的应用!