首页 > 代码库 > 选项卡的简单原理实现

选项卡的简单原理实现

      大家好,我是绅士扮演者,我喜欢将平时练的小案例拿出来与大家分享,也欢迎各位高人评论我的代码,提升技术,留下您宝贵的意见。有些地方可能没有注释,如果感觉有问题可以评论或私聊我都行。

      平时小案例之--选项卡:

      大家平常写选项卡应该都是通过设置class属性来通过动态添加或设置类名来实现内容的切换吧,我感觉那样的话要设置两套属性,不如直接动态设置css样式来控制内容的切换。下面是简单样式的源码(如有不好的地方,欢迎大家指正):

<!DOCTYPE html>
<html>
 <head>
  <meta charset="UTF-8">
  <title></title>
        <style type="text/css">
         *{padding:0;margin: 0;}
         ul>li{list-style: none;}
         div{width: 400px;height: 300px;margin: 50px auto;border: 1px solid black;overflow: hidden;}
         .sm{float: left;width: 100px;height: 20px;border-bottom: 1px solid black;}
         .lg{width: 400px;height: 280px;background: green;margin-top: 20px;}
        </style>
 </head>
 <body>
  <div>
   <ul id="ul1">
    <li class="sm" >1</li>
    <li class="sm" >2</li>
    <li class="sm" >3</li>
    <li class="sm" >4</li>
   </ul>
   
   <ul id="ul2">
    <li class="lg" >111111</li>
    <li class="lg" style="display: none;">22222</li>
    <li class="lg" style="display: none;">333333333</li>
    <li class="lg" style="display: none;">444444444</li>
   </ul>
  </div>
 </body>
</html>
<script type="text/javascript">
 var sm=document.getElementsByClassName("sm"),
     lg=document.getElementsByClassName("lg");
     for(var i=0;i<sm.length;i++){
      sm[i].index=i;
      sm[i].onmouseover=function(){
       for(var j=0;j<lg.length;j++){
       lg[j].style.display="none"; 
       }
//       console.log(this.index);
       this.style.backgroundColor="indianred";
       lg[this.index].style.display="block";
      }
      sm[i].onmouseout=function(){
       this.style.backgroundColor="white";
//          lg[i].style.display="none";
      }
     }
</script>

当然,大体思想还是排他思想。

 

    

选项卡的简单原理实现