Live2D 看板娘

利用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类名称,当前点击的选项卡显示,其它隐藏。
<!DOCTYPE html>
<html>

<head lang="en">
    <meta charset="UTF-8">
    <title>实践题 - 选项卡</title>
    <style type="text/css">
    /* CSS样式制作 */
    
    *body {
        margin: 0;
        padding: 0;
    }
    
    ul,
    li {
        list-style-type: none;
    }
    
    #newstitle ul {
        overflow: hidden;
        margin-bottom: 0px;
        padding-left: 25px;
    }
    
    #newstitle ul li {
        float: left;
        width: 95px;
        height: 30px;
        line-height: 30px;
        text-align: center;
        border-left: 1px solid #5a5757;
        border-top: 1px solid #5a5757;
        border-right: 1px solid #5a5757;
        margin-right: 5px;
        border-radius: 3px 3px 0px 0px;
    }

    #newstitle ul li:hover {
        cursor: pointer;
    }

    #newstitle ul .active{
        border-top:2px solid #541e1e;
        border-bottom:2px solid #e1dddd;
        background-color:#e1dddd;
    }
    
    #newsdetails {
        width: 350px;
        height: 150px;
        overflow: hidden;
        margin-top: -2px;
    }
    
    #newsdetails ul {
        padding-top: 10px;
        padding-bottom: 10px;
        margin-top: 0px;
        background-color:#e1dddd;
        border-top: 2px solid #541e1e;
    }
    
    #newsdetails ul li a {
        text-decoration: none;
        color: #000;
        display: block;
        height: 30px;
        line-height: 30px;
    }
    #newsdetails ul li a:hover{
        text-decoration: underline;
    }
    .show{
        display:block;
    }
    .hide{
        display:none;
    }
    </style>
    <script type="text/javascript">
    // JS实现选项卡切换
    window.onload=function(){                                  //页面加载时调用函数
        var newst = document.getElementById("newstitle");      //通过id获取新闻分类区域
        var tlist = newst.getElementsByTagName("li");          //获取新闻分类标题标li签
        var newsd = document.getElementById("newsdetails");    //通过id获取新闻列表区域
        var dul = newsd.getElementsByTagName("ul");            //获取新闻列表板块ul
        for(var i=0;i<tlist.length;i++){                       //遍历新闻分类标题li
            tlist[i].index=i;                                  //在循环的过程中绑定下标i(0 1 2)到tlist数组相应元素tlist[0] tlist[1] tlist[2]的index变量上
            tlist[i].onmouseover=function(){                   //对新闻分类标题设置鼠标经过事件
                for(var i=0;i<tlist.length;i++){               //历新闻分类标题li
                    tlist[i].className = "";                   //消除新闻分类标题li后添加的类
                }
                this.className="active";                       //将鼠标当前经过的元素的类名设置为active
                for(var j=0;j<dul.length;j++){                 //遍历新闻列表板块
                    dul[j].className="hide";                   //将新闻列表板块的类设置为隐藏
                }
                dul[this.index].className="show";              //将对应鼠标经过的新闻分类的板块的类设置为显示
            }
        }
    }
    </script>
</head>

<body>
    <!-- HTML页面布局 -->
    <div id="newstitle">
        <ul>
            <li class="active">房 产</li>
            <li>家 居</li>
            <li>二手房</li>
        </ul>
    </div>
    <div id="newsdetails">
        <ul>
            <li><a href="">275万购昌平邻铁三居 总价20万买一居</a></li>
            <li><a href="">200万内购五环三居 140万安家东三环</a></li>
            <li><a href="">北京首现零首付楼盘 53万购东5环50平</a></li>
            <li><a href="">京楼盘直降5000 中信府 公园楼王现房</a></li>
        </ul>
        <ul>
            <li><a href="">40平出租屋大改造 美少女的混搭小窝</a></li>
            <li><a href="">经典清新简欧爱家 90平老房焕发新生</a></li>
            <li><a href="">新中式的酷色温情 66平撞色活泼家居</a></li>
            <li><a href="">瓷砖就像选好老婆 卫生间烟道的设计</a></li>
        </ul>
        <ul>
            <li><a href="">通州豪华3居260万 二环稀缺2居250w甩</a></li>
            <li><a href="">西3环通透2居290万 130万2居限量抢购</a></li>
            <li><a href="">黄城根小学学区仅260万 121平70万抛!</a></li>
            <li><a href="">独家别墅280万 苏州桥2居优惠价248万</a></li>
        </ul>
    </div>
</body>

</html>
原文地址:https://www.cnblogs.com/jiangtengteng/p/5335220.html