zoukankan      html  css  js  c++  java
  • 用JavaScript实现选项卡功能

    --做更好的自己❀

    用js实现选项卡功能

    我们在一些常见的网站中经常看到将很大的内容进行叠加显示,这样就会节省很大的版面,而显示的内容更加丰富,如下淘宝部分截图:

    1、仿照以上布局,一个标题标签(我们给它设计五个选项卡标签:公告、规则、论坛、安全、公益,相应的就会有五个一样大小的内容盒子来设计内容)一个内容标签。

     

                   <div id="title">
    			<h3 >公告</h3>
    			<h3 >规则</h3>
    			<h3 >论坛</h3>
    			<h3 >安全</h3>
    			<h3 >公益</h3>
    		</div>
    		
    		    
    

      内容如图:

    body部分代码如下:

     1   <div id="selectCard">
     2         <div id="title">
     3             <h3 onmouseover="show(0)" class="titin">公告</h3>
     4             <h3 onmouseover="show(1)">规则</h3>
     5             <h3 onmouseover="show(2)">论坛</h3>
     6             <h3 onmouseover="show(3)">安全</h3>
     7             <h3 onmouseover="show(4)">公益</h3>
     8         </div>
     9         
    10         <div id="content">
    11             
    12             <div class="one">
    13                     <ul>
    14                         <li><a href="#" style="color:#ff4400">马云:恒大队员很爷们</a></li>
    15                         <li><a href="#">和妈妈开淘宝店的故事</a></li>
    16                         
    17                     </ul>
    18             </div>
    19             <div>
    20                     <ul>
    21                         <li><a href="#" style="color:#ff4400">三谈滥发变更</a></li>
    22                         <li><a href="#">虚假交易详解</a></li>
    23                         
    24                     </ul>
    25             </div>
    26             <div>
    27                     <ul>
    28                         <li><a href="#" style="color:#ff4400">解密金牌卖家</a></li>
    29                         <li><a href="#">双11备战秘籍</a></li>
    30                         
    31                     </ul>
    32             </div>
    33             <div>
    34                     <ul>
    35                         <li><a href="#" style="color:#ff4400">卡单、失效都是骗人的</a></li>
    36                         <li><a href="#">卖家防范红包欺诈提醒</a></li>
    37                         
    38                     </ul>
    39             </div>
    40             <div>
    41                     <ul>
    42                         <li><a href="#" style="color:#ff4400">淘宝公益网站全新改版</a></li>
    43                         <li><a href="#">大众评审赢公益金公仔</a></li>
    44                         
    45                     </ul>
    46             </div>
    47             
    48         </div>
    49    </div>

     

    2、还没有进行样式设计,按照淘宝图例进行css样式处理(颜色值和尺寸等也可以自己设计的漂亮点,不是美工不讲究,这里只为实现选项卡效果,点击一个标题内容框中即出现相应的内容),css样式代码如下:

         #selectCard{
                width:298px;
                height:98px;
                border:1px solid #e8e8e8;
                margin-top:100px;
            }
            #title{
                width:100%;
                height:27px;
                background:#f7f7f7;
            }
            h3{
                float:left;
                line-height:27px;
                width:59px;
                font-weight:300;
                text-align:center;
            }
            #content div{
                float:left;
                margin:10px;
                height:50px;
                }
            #content div ul{
                list-style:none;
                list-style: none outside none;
            }
            #content div ul li{
                width:148px;
                height:25px;
                float:left;
                display:block;      
            }
            #content div ul li a{
                text-decoration:none;
                display:inline;
                float:left;
                line-height:25px;
            }
            a:hover{
                color:#ff4400;
            }
            #title .titin{
                background:white;
                }
            #content div{
                display:none;
                }
            #content .one{
                display:block;
            }

    3、我们打开一个页面,就会有位操作时的状态:加上选项卡和其对应的内容为一部分相同色块,经过第一个标题“公告”时,内容one显示,其他two--five暂时隐藏(不需要分别给他们一个类,下面直接用数组代表),这样就要给每个标题一个鼠标事件onmouseover。

    #content div{
                display:none;
                }
    #content .one{
                display:block;
            }

           <h3 onmouseover="show(0)" class="titin">公告</h3>
                <h3 onmouseover="show(1)">规则</h3>
                <h3 onmouseover="show(2)">论坛</h3>
                <h3 onmouseover="show(3)">安全</h3>
                <h3 onmouseover="show(4)">公益</h3>

    下面是嵌入的js代码 关键之处

    <script>
            var h3os=document.getElementsByTagName("h3");         //获取标题存入h3os中
            var cdivs=document.getElementById("content").getElementsByTagName("div");      //获取标题存入cdivs中
            
            function show(num){
                for(var i=0;i<h3os.length;i++){
                    if(i==num){
                            h3os[num].className="titin";
                            cdivs[num].style.display="block";
                        }else{
                                h3os[i].className="";
                                cdivs[i].style.display="none";
                            }
                    }
                }        
        </script>

     最终效果:

  • 相关阅读:
    CF 142B Tprimes
    CF 231A Team
    poj 2001 Shortest Prefixes ——字典树入门
    hdu 1039 Easier Done Than Said?
    poj 2528 Mayor's posters
    hdu 1061 Rightmost Digit
    poj 2503 Babelfish
    CF271 A. Beautiful Year
    poj 2752
    CF271 B. Prime Matrix
  • 原文地址:https://www.cnblogs.com/charmingyj/p/3945155.html
Copyright © 2011-2022 走看看