利用JavaScript知识,实现选项卡切换的效果。

效果图:

android 底部tab切换库 android切换选项卡_ViewUI

文字素材:

房产:

    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.οnlοad=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].οnmοuseοver=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>