tab选项卡切换效果
2015-11-27 10:08
344 查看
tab选项卡切换效果在大部分的网站上都能看到,这是一个很有用的效果。下面先简单地说下这个效果的实现原理和思路。
tab选项卡说白了就是n个标签对应n个模块的内容,点到哪个标签,与之相对应的内容就会被显示,其他的内容被隐藏。标签部分一般用一个无序列表,显示的内容部分则用<div class="mode">...</div>这样的包裹层包裹起来。
实现步骤:
1.获取标签<li>..</li>数组
2.获取显示的内容的<div class="mode'>..</div>数组。
3.将他们一一对应,设置显示的样式。
说起来还是比较麻烦的,直接上源码,这个源码很简单,没有过多的CSS样式,纯粹的是为了演示tab选项卡的效果,不怎么美观。但代码比较简单,一看就懂。下面的源码是可以直接运行的
html部分:
CSS部分:
JS部分:
这样,这个tab选项卡的效果就实现了。
tab选项卡说白了就是n个标签对应n个模块的内容,点到哪个标签,与之相对应的内容就会被显示,其他的内容被隐藏。标签部分一般用一个无序列表,显示的内容部分则用<div class="mode">...</div>这样的包裹层包裹起来。
实现步骤:
1.获取标签<li>..</li>数组
2.获取显示的内容的<div class="mode'>..</div>数组。
3.将他们一一对应,设置显示的样式。
说起来还是比较麻烦的,直接上源码,这个源码很简单,没有过多的CSS样式,纯粹的是为了演示tab选项卡的效果,不怎么美观。但代码比较简单,一看就懂。下面的源码是可以直接运行的
html部分:
<body> <!-- 最外层的div是一个包裹整个tab选项卡的包裹层--> <div id="wrap"> <div id="title"> <!-- 标题部分通常用一个无序列表来表示--> <ul> <li><a href="#">标题一</a></li> <li><a href="#">标题二</a></li> <li><a href="#">标题三</a></li> <li><a href="#">标题四</a></li> <li><a href="#">标题五</a></li> </ul> </div> <div id="content"> <!-- 下面的是要显示的内容。一个div对应标题里面的一个标签--> <div class="mod"> <p>我是标签<b>一</b>,我是标签<b>一</b>,我是标签<b>一</b>,我是标签<b>一</b>,我是标签<b>一</b>,</p> </div> <div class="mod" style="display: none;"> <p>我是标签<b>二</b>,我是标签<b>二</b>,我是标签<b>二</b>,我是标签<b>二</b>,我是标签<b>二</b>,</p> </div> <div class="mod" style="display: none;"> <p>我是标签<b>三</b>,我是标签<b>三</b>,我是标签<b>三</b>,我是标签<b>三</b>,我是标签<b>三</b>,</p> </div> <div class="mod" style="display: none;"> <p>我是标签<b>四</b>,我是标签<b>四</b>,我是标签<b>四</b>,我是标签<b>四</b>,我是标签<b>四</b>,</p> </div> <div class="mod" style="display: none;"> <p>我是标签<b>五</b>,我是标签<b>五</b>,我是标签<b>五</b>,我是标签<b>五</b>,我是标签<b>五</b>,</p> </div> </div> </div> </body>
CSS部分:
<style> *{padding: 0;margin: 0;} #wrap{ width: 500px; height: 500px; margin: 50px auto; border:1px solid black; } #title{ height: 30px; background-color: darkgray; } #title ul{ width: 100%; list-style: none; } #title ul li{ display: inline-block; width: 90px; float: left; padding: 5px; text-align: center; } #title ul li a{ color: white; text-decoration: none; } #title ul li:hover{ background-color: black; color: white; } </style>
JS部分:
<script> window.onload=function(){ //获取标题列表 var oparent=document.getElementById("title"); var lis=oparent.getElementsByTagName("li"); //获取展示内容的列表 var mods=document.getElementById("content"); var divs=mods.getElementsByClassName("mod"); //遍历lis for(var i=0;i<lis.length;i++){ lis[i].id=i; //为每个元素添加滑动事件 lis[i].onmouseover=function(){ //先清除其他的样式 for(var j=0;j<lis.length;j++){ divs[j].style.display="none"; } //被点击的标签所对应的内容显示 divs[this.id].style.display="block"; } } } </script>
这样,这个tab选项卡的效果就实现了。
相关文章推荐
- 第二十四课
- 将App打包上传到AppStore
- WCF大数据量传输配置
- MySQL的查询缓存机制基本学习教程
- jquerymobile API
- python中list的append和extends的区别
- 开发基于CXF的 RESTful WebService web 项目 webservice发布
- Length of last word leetcode java
- 33.c/c++程序员面试宝典-函数重载
- Hadoop Problem
- iPhone5s 换电池、修右上角翘起的悲催过程
- MySQL中的group_concat函数的使用方法
- 给标签追加事件
- 第二十三课 通道
- 微信支付开发(11) Native支付
- 【转】谁说Vim不是IDE?(一)
- 主席树
- navigationBar的控制
- JS实现的表格行鼠标点击高亮效果代码
- 化工企业数据分析平台项目之应收款分析