zoukankan      html  css  js  c++  java
  • 兼容各种浏览器的的选项卡菜单

      1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      2 <html xmlns="http://www.w3.org/1999/xhtml">
      3 <head>
      4 <title>兼容各种浏览器的的选项卡菜单</title>
      5 <meta http-equiv="content-type" content="text/html;charset=gb2312">
      6 <!--把下面代码加到<head>与</head>之间-->
      7 <style type="text/css">
      8 #tab_container1 {
      9     600px;
     10     text-align:left;
     11 }
     12 .cls_tab_nav {
     13     height:26px;
     14     overflow:hidden;
     15     font-size:12px;
     16     text-align:left;
     17     border-bottom:1px solid #FFAE1E;
     18 }
     19 .cls_tab_nav ul {
     20     font-size:9pt;
     21     margin:0;
     22     padding:0;
     23 }
     24 .cls_tab_nav_li {
     25     border:1px solid #FFAE1E;
     26     background:#fff000;
     27     157px;
     28     height:26px;
     29     line-height:26px;
     30     float:left;
     31     display:inline;
     32     overflow:hidden;
     33     text-align:center;
     34     cursor:pointer;
     35     margin-right:10px;
     36 }
     37 .cls_tab_nav_li_first {
     38     background-position:0px 0px;
     39 }
     40 .cls_tab_nav_li a {
     41     text-decoration:none;
     42     color:#555;
     43     font-size:12px;
     44 }
     45 .cls_tab_body {
     46     border:1px solid #FFAE1E;
     47     border-top:none;
     48     min-height:260px;
     49     padding:20px;
     50 }
     51 .cls_div {
     52     display:none;
     53     font-size:14px;
     54 }
     55 </style>
     56 </head>
     57 <body>
     58 <!--把下面代码加到<body>与</body>之间-->
     59 <div id="tab_container1">
     60   <div class="cls_tab_nav">
     61     <ul>
     62       <li class="cls_tab_nav_li cls_tab_nav_li_first"><a href="#">最新更新</a></li>
     63       <li class="cls_tab_nav_li"><a href="#">ASP类最新更新</a></li>
     64       <li class="cls_tab_nav_li"><a href="#">C#类最新更新</a></li>
     65     </ul>
     66   </div>
     67   <div class="cls_tab_body">
     68     <div class="cls_div" style="display:block;">这里是最新更新的显示内容</div>
     69     <div class="cls_div">ASP的显示内容</div>
     70     <div class="cls_div">C#的显示内容</div>
     71   </div>
     72 </div>
     73 <script type="text/javascript">
     74 
     75 
     76 try
     77 {
     78     document.execCommand("BackgroundImageCache", false, true);
     79 }
     80 catch(e){}
     81 
     82 
     83 function $(element)
     84 {
     85     if(arguments.length>1)
     86     {
     87         for(var i=0,elements=[],length=arguments.length;i<length;i++)
     88         elements.push($(arguments[i]));
     89         return elements;
     90     }
     91     if(typeof element=="string")
     92         return document.getElementById(element);
     93     else
     94         return element;
     95 }
     96 
     97 var Class=
     98 {
     99     create:function()
    100     {
    101         return function()
    102         {
    103             this.initialize.apply(this,arguments);
    104         }
    105     }
    106 }
    107 
    108 
    109 Object.extend=function(destination,source)
    110 {
    111     for(var property in source)
    112     {
    113       destination[property]=source[property];
    114     }
    115     return destination;
    116 }
    117 
    118 var tabMenu=Class.create();
    119 
    120 tabMenu.prototype=
    121 {
    122     initialize:function(container,selfOpt,otherOpt)
    123     {
    124         this.container=$(container);
    125         var selfOptions=Object.extend({fontWeight:"bold",fontSize:"12px",color:"#FFBC44"},selfOpt||{});
    126         var otherOptions=Object.extend({fontWeight:"normal",fontSize:"12px",color:"#666"},otherOpt||{});
    127         //用for循环得到objs数组,主要是为了兼容非IE浏览器把空白也当作子对象
    128           for(var i=0,length=this.container.childNodes.length,objs=[];i<length;i++)
    129         {
    130             if(this.container.childNodes[i].nodeType==1)
    131             objs.push(this.container.childNodes[i]);
    132         }
    133         var tabArray=objs[0].getElementsByTagName("li");
    134           //用for循环得到divArray数组,主要是为了兼容非IE浏览器把空白也当作子对象
    135           var divArray=new Array();
    136           for(i=0,length=objs[1].childNodes.length;i<length;i++)
    137         {
    138             if(objs[1].childNodes[i].nodeType==1)
    139             divArray.push(objs[1].childNodes[i]);
    140         }
    141           for(i=0,length=tabArray.length;i<length;i++)
    142         {
    143             tabArray[i].length=length;
    144             tabArray[i].index=i;
    145             tabArray[i].onmouseover=function()
    146                {
    147             //其它选项卡样式设置
    148                 for(var j=0;j<this.length;j++)
    149                 {
    150                     tabArray[j].style.backgroundPosition="-"+tabArray[j].offsetWidth+"px 0";
    151                     for(var property in selfOptions)
    152                     {
    153                         tabArray[j].firstChild.style[property]=otherOptions[property];
    154                     }
    155                 }
    156             //当前选项卡样式
    157                 this.style.backgroundPosition="0 0";
    158                 for(var property in selfOptions)
    159                 {
    160                     this.firstChild.style[property]=selfOptions[property];
    161              /*
    162               注意this.style.property和selfOptions.property的用法错误
    163               style.fontWeight正确
    164               style["fontWeight"]正确
    165               style["font-weight"]错误
    166              */
    167                 }
    168             //隐藏其它选项卡
    169                 for(j=0;j<this.length;j++)
    170                 {
    171                     divArray[j].style.display="none";
    172                 }
    173             //显示当前选项卡
    174                 divArray[this.index].style["display"]="block";
    175             }
    176         }
    177     }
    178 }
    179 var tab1=new tabMenu("tab_container1",{fontSize:"14px",color:"#FFBC44",fontWeight:"bold"},{fontWeight:"normal",color:"#666"});
    180 </script>
    181 </body>
    182 </html>
  • 相关阅读:
    leetcode二叉树相同的树
    leetcode二叉树中序遍历
    leetcode二叉树前序遍历
    leetcode数组中级Lc287.寻找重复数
    概要设计说明书
    leetcode二叉树对称二叉树
    小数点处理详解:切舍、切上、四舍五入
    C++多态的两种使用方式
    让Ogre的资源管理器为我们服务
    地形纹理Splatting技术(翻译)
  • 原文地址:https://www.cnblogs.com/laonanren/p/2932008.html
Copyright © 2011-2022 走看看