js实现选项卡切换的效果
效果图:

css 代码:
<style type="text/css">
*{margin: 0;padding: 0;list-style: none;}
.demo{width: 500px;height: 600px;margin: auto;margin-top: 100px;}
.biaoti{width:400px;height: 60px;margin: auto;}
.list{float: left; width: 100px;height: 60px;text-align: center;cursor: pointer;margin-left: 20px;
line-height: 60px;border: 1px solid #ccc;border-bottom: 0}
/*.biaoti ul li{float: left; width: 100px;height: 60px;text-align: center;cursor: pointer;margin-left: 20px;
line-height: 60px;border: 1px solid #ccc;border-bottom: 0;}*/
.list-content{width: 400px;height: 400px;left:50px;border: 1px solid blue;border-top: 2px solid brown;margin: auto;margin-top: 2px;}
/* .biaoti ul li:first-child{border-top:2px solid brown;border-bottom: 2px solid #fff;}*/
.biaoti ul .active{border-top:2px solid brown;border-bottom:2px solid #fff;}
.content{display: none;text-align: center;padding-top: 20px;line-height: 30px;}
.list-content div:first-child{display: block;}
</style>
HTMl代码:
<div class="demo">
<div class="biaoti">
<ul>
<li class="list active">房产</li>
<li class="list">家居</li>
<li class="list">二手房</li>
</ul>
</div>
<div class="list-content">
<div class="content" id="1">
275万购昌平邻铁三居 总价20万买一居<br />
200万内购五环三居 140万安家东三环<br />
北京首现零首付楼盘 53万购东5环50平<br />
京楼盘直降5000 中信府 公园楼王现房<br />
</div>
<div class="content" id="2">
40平出租屋大改造 美少女的混搭小窝<br />
经典清新简欧爱家 90平老房焕发新生<br />
新中式的酷色温情 66平撞色活泼家居<br />
瓷砖就像选好老婆 卫生间烟道的设计<br />
</div>
<div class="content" id="3">
通州豪华3居260万 二环稀缺2居250w甩<br />
西3环通透2居290万 130万2居限量抢购<br />
黄城根小学学区仅260万 121平70万抛!<br />
独家别墅280万 苏州桥2居优惠价248万<br />
</div>
</div>
</div>
js代码:
未封装:
<!--<script type="text/javascript">
// var list=document.getElementsByTagName("li");
var list=document.getElementsByClassName("list")
for(var i=0;i<list.length;i++){
list[i].index=i;
list[i].onclick=function(){
//alert(this.index)
getcontent(this.index)
//alert(this.index+1)
var cs=this.parentNode.children;
console.log(cs);
for(var i=0;i<cs.length;i++){
var ci=cs[i];
if(this!=ci){
// console.log(ci)
// this.style.cssText="border-top:2px solid brown;border-bottom: 2px solid #fff;"
// ci.style.cssText="border-top: 1px solid #CCCCCC;border-bottom: 0;"
this.setAttribute("class","active list")
ci.setAttribute("class","list")
}
}
}
}
function getcontent(id){
var content=document.getElementsByClassName("content");
var itemId=content.item(id).getAttribute("id");
var par=content.item(id).parentNode.children;
//console.log(par);
for(var i=0;i<par.length;i++){
var ci=par[i];
if(content.item(id)!=ci){
content.item(id).style.display="block";
ci.style.display="none";
}
}
}
</script>-->
封装后:
<!--<script type="text/javascript">
var list=document.getElementsByClassName("list")
for(var i=0;i<list.length;i++){
list[i].index=i;
list[i].onclick=function(){
getcontent(this.index)
}
}
function getcontent(id){
var content=document.getElementsByClassName("content");
var itemId=content.item(id).getAttribute("id");
var par=content.item(id).parentNode.children;
var cs=list.item(id).parentNode.children;
for(var i=0;i<par.length;i++){
var txt=content.item(id)
var ci=par[i];
if(txt!=ci){
txt.style.display="block";
ci.style.display="none";
}
}
for(var i=0;i<cs.length;i++){
var txt1=list.item(id);
var ci=cs[i];
if(txt1!=ci){
txt1.setAttribute("class","active list")
ci.setAttribute("class","list")
}
}
}
</script>-->
封装后:
<script type="text/javascript">
var list=document.getElementsByClassName("list")
for(var i=0;i<list.length;i++){
list[i].index=i;
list[i].onclick=function(){
getcontent(this.index)
}
}
function getcontent(id){
var content=document.getElementsByClassName("content");
var par=content.item(id).parentNode.children;
var cs=list.item(id).parentNode.children;
for(var i=0;i<par.length;i++){
var txt=content.item(id),txt1=list.item(id);
var ci=par[i],ci1=cs[i];
if(txt!=ci&&txt1!=ci){
// content
txt.style.display="block";
ci.style.display="none";
//list
txt1.setAttribute("class","active list")
ci1.setAttribute("class","list")
}
}
}
</script>
虽然简单,但是对初学者来说可以锻炼思维。希望对你们有帮助,谢谢!
有什么更好的方法,希望大牛给点意见!!!
总结:这不是一个很复杂的功能,但是只用js来写,对于js不熟悉的人来说,可能很费脑;闲话少说;在写这个功能的:思路如下:
1.首先就是html的结构和css样式,这是必不可少的。
2.就是js操作主要就是dom操作和循环遍历,在dom操作中最困难的问题就是this的兄弟元素。
js实现选项卡切换的效果的更多相关文章
- 用html+css+js实现选项卡切换效果
文章转载自:http://tongling.github.io/JSCards/ 用html+css+js实现选项卡切换效果 使用之前学过的综合知识,实现一个新闻门户网站上的常见选项卡效果: 文字素材 ...
- 用js实现选项卡切换效果
这是要实现的效果图: 一.HTML页面布局 <!-- HTML页面布局 --><ul class="tab_menu"> <li class=&quo ...
- 7、JavaScript总结——实现选项卡切换的效果
编程挑战 现在利用之前我们学过的JavaScript知识,实现选项卡切换的效果. 效果图: 文字素材: 房产: 275万购昌平邻铁三居 总价20万买一居 200万内购五环三居 140万安家东三环 ...
- js实现选项卡切换
<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8" ...
- JS实现选项卡切换效果
1.在网页制作过程中,我们经常会用到选项卡切换效果,它能够让我们的网页在交互和布局上都能得到提升 原理:在布局好选项卡的HTML结构后,我们可以看的出来,选项卡实际上是三个选项卡标头和三个对应的版块, ...
- js实现选项卡切换的三种方式
前两种主要实现一个选项卡的切换,第三种使用闭包看书,构造函数实现多个选项卡的切换: 1.第一种实现实现效果为: 实现代码为: <!doctype html> <!DOCTYPE ht ...
- (效果三)js实现选项卡切换
开发了很久的小程序,在接到一个h5移动端页面的时候,很多原生的东西都忘了,虽然说我们随着工作经验的增加,处理业务逻辑的能力在提高,但是基础的东西如果长时间不用,也会逐渐忘记.所以以后会经常总结原生的一 ...
- 二、JavaScript语言--JS基础--JavaScript进阶篇--选项卡切换效果
利用JavaScript知识,实现选项卡切换的效果. 效果图: 文字素材: 房产: 275万购昌平邻铁三居 总价20万买一居 200万内购五环三居 140万安家东三环 北京首现零首付楼 ...
- [前端] html+css+javascript 实现选项卡切换效果
用html+css+js实现选项卡切换效果使用之前学过的综合知识,实现一个新闻门户网站上的常见选项卡效果: 文字素材:房产: 275万购昌平邻铁三居 总价20万买一居 200万内购五环三居 140万安 ...
随机推荐
- 【Linux Tips】登陆,提示符,别名
1.Linux 的tty界面下的登陆界面设置 看了半天发现,原来每次ctrl+alt+F1进入的tty1刚开始显示的就是初始化的登陆界面,顿时有种想装扮下他的冲动,因为实在是太简单了点,不过我是个喜欢 ...
- Azure IoT 技术研究系列4-Azure IoT Hub的配额及缩放级别
上两篇博文中,我们介绍了将设备注册到Azure IoT Hub,设备到云.云到设备之间的通信: Azure IoT 技术研究系列2-设备注册到Azure IoT Hub Azure IoT 技术研究系 ...
- grunt构建一个项目
准备工作:grunt基于node环境运行,所有先安装node.js 1.安装grunt,通过node的npm的包管理工具 >npm install grunt --save-dev 2.npm ...
- 破解Linux系统开机密码
在我们使用Linux虚拟机的时候,经常会忘记自己设置的开机密码,无奈之下只有重新建一个虚拟机,然而新建往往会浪费掉我们很多时间,这时候,知道如何破解Linux系统密码就显得很重要了. 下面我们使用bo ...
- Angular2.js——表单(下)
这部分是接表单上部分的内容,主要内容有: 1.添加自定义的CSS来提供视觉反馈: 2.显示和隐藏有效性验证的错误信息: 3.使用ngSubmit处理表单提交: 4.禁用表单提交按钮. 添加自定义的CS ...
- bzoj3064 Tyvj 1518 CPU监控
Description Bob需要一个程序来监视CPU使用率.这是一个很繁琐的过程,为了让问题更加简单,Bob会慢慢列出今天会在用计算机时做什么事. Bob会干很多事,除了跑暴力程序看视频之外,还会做 ...
- [CTSC1999]【网络流24题】星际转移
Description 由于人类对自然资源的消耗,人们意识到大约在2300 年之后,地球就不能再居住了.于是在月球上建立了新的绿地,以便在需要时移民.令人意想不到的是,2177 年冬由于未知的原因,地 ...
- 浅谈JavaScript时间与正则表达式
时间函数:var box = new Date() 函数 Demo: alert(Date.parse('4/12/2007')); //返回的是一个毫秒数11763 ...
- ABP官方文档翻译 2.5 设置管理
设置管理 介绍 关于 ISettingStore 定义设置 设置范围 重写设置定义 获取设置值 服务端 客户端 更改设置 关于缓存 介绍 每个应用都需要存储设置,并且在应用的某些地方需要使用这些设置. ...
- 当谈 SQL 优化时谈些什么?
欢迎大家关注腾讯云技术社区-博客园官方主页,我们将持续在博客园为大家推荐技术精品文章哦~ 作者:孙银行 背景 Mysql数据库作为数据持久化的存储系统,在实际业务中应用广泛.在应用也经常会因为SQL遇 ...