• 7、JavaScript总结——实现选项卡切换的效果


    编程挑战

    现在利用之前我们学过的JavaScript知识,实现选项卡切换的效果。

    效果图:

    文字素材:

    房产:

        275万购昌平邻铁三居 总价20万买一居
        200万内购五环三居 140万安家东三环
        北京首现零首付楼盘 53万购东5环50平
        京楼盘直降5000 中信府 公园楼王现房

    家居:

         40平出租屋大改造 美少女的混搭小窝
         经典清新简欧爱家 90平老房焕发新生
         新中式的酷色温情 66平撞色活泼家居
         瓷砖就像选好老婆 卫生间烟道的设计

    二手房:

         通州豪华3居260万 二环稀缺2居250w甩
         西3环通透2居290万 130万2居限量抢购
         黄城根小学学区仅260万 121平70万抛!
         独家别墅280万 苏州桥2居优惠价248万
     

    分析

    大家先思考和分析实现思路,然后在动手实现

    一、HTML页面布局

    提示:
    选项卡标题使用ul..li
    选项卡内容使用div

    二、CSS样式制作

    提示:
    整个选项卡的样式设置
    选项卡标题的样式设置
    选项卡内容的样式设置
    一开始只显示一个选项卡内容,其它选项卡内容隐藏。

    三、JS实现选项卡切换

    提示:
    获取选项卡标题和选项卡内容
    选项卡内容多个,需要循环遍历来操作,得知哪个选项卡和哪个选项内容匹配
    通过改变DOM的css类名称,当前点击的选项卡显示,其它隐藏。

     代码实现:

     1 <!DOCTYPE html>
     2 <html>
     3 <head lang="en">
     4     <meta charset="UTF-8">
     5     <title>实践题 - 选项卡</title>
     6     <style type="text/css">
     7         *{padding:0px;margin: 0px;font:12px normal "microsoft yahei";}
     8         #tabs {width:290px;padding:5px;height:150px;margin:20px;}
     9         #tabs ul{list-style:none;display: block;height:30px;line-height:30px;border-bottom:2px saddlebrown solid;}
    10         #tabs ul li{background:#fff;cursor:pointer;float:left;list-style:none;height:28px;line-height:28px;margin:0px 3px;border:1px solid #aaaaaa;border-bottom:none;display:inline-block;width:60px;text-align: center;}
    11         #tabs ul li.on{border-top:2px solid saddlebrown;border-bottom: 2px solid #fff;}
    12         #tabs div{height:120px;line-height: 25px;border:1px solid #336699;border-top:none;padding:5px;}
    13         .hide{display: none;}
    14     </style>
    15     <script type="text/javascript">
    16          window.onload = function(){
    17              var oTab = document.getElementById("tabs");
    18              var oUl = oTab.getElementsByTagName("ul")[0];
    19              var oLis = oUl.getElementsByTagName("li");
    20              var oDivs= oTab.getElementsByTagName("div");
    21 
    22              for(var i= 0,len = oLis.length;i<len;i++){
    23                  oLis[i].index = i;
    24                  oLis[i].onclick = function() {
    25                      for(var n= 0;n<len;n++){
    26                          oLis[n].className = "";
    27                          oDivs[n].className = "hide";
    28                      }
    29                      this.className = "on";
    30                      oDivs[this.index].className = "";
    31                  }
    32              };
    33          }
    34     </script>
    35 
    36 </head>
    37 <body>
    38 <div id="tabs">
    39     <ul>
    40         <li class="on">房产</li>
    41         <li>家居</li>
    42         <li>二手房</li>
    43     </ul>
    44     <div>
    45         275万购昌平邻铁三居 总价20万买一居<br>
    46         200万内购五环三居 140万安家东三环<br>
    47         北京首现零首付楼盘 53万购东5环50平<br>
    48         京楼盘直降5000 中信府 公园楼王现房<br>
    49     </div>
    50     <div class="hide">
    51         40平出租屋大改造 美少女的混搭小窝<br>
    52         经典清新简欧爱家 90平老房焕发新生<br>
    53         新中式的酷色温情 66平撞色活泼家居<br>
    54         瓷砖就像选好老婆 卫生间烟道的设计<br>
    55 
    56     </div>
    57     <div class="hide">
    58         通州豪华3居260万 二环稀缺2居250w甩<br>
    59         西3环通透2居290万 130万2居限量抢购<br>
    60         黄城根小学学区仅260万 121平70万抛!<br>
    61         独家别墅280万 苏州桥2居优惠价248万<br>
    62 
    63     </div>
    64 </div>
    65 
    66 </body>
    67 </html>
    View Code
  • 相关阅读:
    hdu1003 Max Sum【最大连续子序列之和】
    HDU 2639 骨头收集者 II【01背包 】+【第K优决策】
    poj2184 Cow Exhibition【01背包】+【负数处理】+(求两个变量的和最大)
    HDU 2955_Robberies 小偷抢银行【01背包】
    UVa 562
    HDU 1159 Common Subsequence 【最长公共子序列】模板题
    hdu 5748 Bellovin【最长上升子序列】
    POJ 3903 Stock Exchange 【最长上升子序列】模板题
    UVA 624 CD[【01背包】(输出路径)
    hdu 2546 饭卡【01背包】
  • 原文地址:https://www.cnblogs.com/Qian123/p/5238283.html
Copyright © 2020-2023  润新知