javascript实现tabs选项卡切换效果(自写原生js)


Posted in Javascript onMarch 19, 2013

现在的页面上有许多各种各样的页面效果,常用的有弹出层效果,无缝滚动效果,选项卡切换效果。今天分享一款自己用原生javascript写的选项卡切换效果,由于本人水平有限,如有问题请指出。
效果图如下:
javascript实现tabs选项卡切换效果(自写原生js) 
html代码

<!DOCTYPE HTML> 
<html lang="en-US"> 
<head> 
<meta charset="UTF-8"> 
<title>js-tabs</title> 
<link rel="stylesheet" type="text/css" href="css/base.css" media="all"/> 
<style type="text/css"> 
a{color:#a0b3d6;} 
.tabs{border:1px solid #a0b3d6;margin:100px;width:300px;} 
.tabs-nav a{background:#eaf0fd;line-height:30px;padding:0 20px;display:inline-block;border-right:1px solid #a0b3d6;border-bottom:1px solid #a0b3d6;float:left;} 
.tabs-nav .on{background:white;border-bottom:1px solid white;_position:relative;} 
.tabs-content{padding:20px;border-top:1px solid #a0b3d6;margin-top:-1px;} 
</style> 
</head> 
<body> 
<div class="tabs" id="tabs"> 
<h2 class="tabs-nav clearfix"> 
<a href="javascript:;" class="on">首页</a> 
<a href="javascript:;">技术</a> 
<a href="javascript:;">生活</a> 
<a href="javascript:;">作品</a> 
</h2> 
<p class="tabs-content">首页首页首页首页首页首页首页首页首页首页</p> 
<p class="tabs-content hide">技术技术技术技术技术技术技术技术技术技术</p> 
<p class="tabs-content hide">生活生活生活生活生活生活生活生活生活生活</p> 
<p class="tabs-content hide">作品作品作品作品作品作品作品作品作品作品</p> 
</div> 
<br/><br/> 
<div class="tabs" id="tabs2"> 
<h2 class="tabs-nav clearfix"> 
<a href="javascript:;" class="on">11111</a> 
<a href="javascript:;">22222</a> 
<a href="javascript:;">33333</a> 
</h2> 
<p class="tabs-content">11111111111111111111111111111111111</p> 
<p class="tabs-content hide">222222222222222222222222222222222222</p> 
<p class="tabs-content hide">333333333333333333333333333333333333333</p> 
</div> 
</body> 
</html> 
<script type="text/javascript" src="tabs.js"></script> 
<script type="text/javascript"> 
window.onload = function(){ 
tabs('tabs','click'); 
tabs('tabs2','mouseover'); 
} 
</script>

其中 base.css 参考我的CSS框架——base.css。
javascript 代码
function tabs(id,trigger){ 
var tabsBtn = document.getElementById(id).getElementsByTagName('h2')[0].getElementsByTagName('a'); 
var tabsContent = document.getElementById(id).getElementsByTagName('p'); 
for(var i = 0,len = tabsBtn.length; i < len; i++){ 
tabsBtn[i].index = i; 
if(trigger == 'click'){ 
tabsBtn[i].onclick = function(){ 
clearClass(); 
this.className = 'on'; 
showContent(this.index); 
} 
}else if(trigger == 'mouseover'){ 
tabsBtn[i].onmouseover = function(){ 
clearClass(); 
this.className = 'on'; 
showContent(this.index); 
} 
} 
} 
function showContent(n){ 
for(var i = 0,len = tabsBtn.length; i < len; i++){ 
tabsContent[i].className = 'hide'; 
} 
tabsContent[n].className = 'tabs-content'; 
} 
function clearClass(){ 
for(var i = 0,len = tabsBtn.length; i < len; i++){ 
tabsBtn[i].className = ''; 
} 
} 
}

注意
1、标题如首页、技术、生活和作品是在 h2 标签中。
2、显示当前标题使用 class 名为 on 的类,如果修改成其他 class 的如 selected,就需要修改 tabs.js 中相对应的内容。
3、标题所对应的内容是在 p 标签中。p 标签中不能再有 p 标签。
PS:这是本人闲着无聊,通过自己所学的 javascript 知识,随意写的一些效果。
Javascript 相关文章推荐
JavaScript中的Screen屏幕对象
Jan 16 Javascript
jQuery.get、jQuery.getJSON、jQuery.post无法返回JSON问题的解决方法
Jul 28 Javascript
JavaScript类型检测之typeof 和 instanceof 的缺陷与优化
Jan 13 Javascript
jQuery height()、innerHeight()、outerHeight()函数的区别详解
May 23 Javascript
JavaScript基础重点(必看)
Jul 09 Javascript
javaScript 事件绑定、事件冒泡、事件捕获和事件执行顺序整理总结
Oct 10 Javascript
Bootstrap面板(Panels)的简单实现代码
Mar 17 Javascript
jQuery替换节点元素的操作方法
Mar 18 jQuery
WebSocket的简单介绍及应用
May 23 Javascript
简单了解微信小程序 e.target与e.currentTarget的不同
Sep 27 Javascript
js实现时分秒倒计时
Dec 03 Javascript
Flexible.js可伸缩布局实现方法详解
Nov 13 Javascript
jquery写个checkbox——类似邮箱全选功能
Mar 19 #Javascript
借助script进行Http跨域请求:JSONP实现原理及代码
Mar 19 #Javascript
DIV+CSS+JS不间断横向滚动实现代码
Mar 19 #Javascript
下载文件个别浏览器文件名乱码解决办法
Mar 19 #Javascript
jQuery点击tr实现checkbox选中的方法
Mar 19 #Javascript
js多级树形弹出一个小窗口层(非常好用)实例代码
Mar 19 #Javascript
Javascript中valueOf与toString区别浅析
Mar 19 #Javascript
You might like
php htmlspecialchars加强版
2010/02/16 PHP
用PHP来计算某个目录大小的方法
2014/04/01 PHP
php使用curl和正则表达式抓取网页数据示例
2014/04/13 PHP
一个严格的PHP Session会话超时时间设置方法
2014/06/10 PHP
Codeigniter中mkdir创建目录遇到权限问题和解决方法
2014/07/25 PHP
php实现Session存储到Redis
2015/11/11 PHP
javascript(js)的小数点乘法除法问题详解
2014/03/07 Javascript
当达到输入长度时表单自动切换焦点
2014/04/06 Javascript
js获取form的方法
2015/05/06 Javascript
jquery使用ul模拟select实现表单美化的方法
2015/08/18 Javascript
深入浅析JavaScript中的constructor
2016/04/19 Javascript
JavaScript中的call和apply的用途以及区别
2017/01/11 Javascript
详解nodejs爬虫程序解决gbk等中文编码问题
2017/04/06 NodeJs
Chrome调试折腾记之JS断点调试技巧
2017/09/11 Javascript
微信小程序获取音频时长与实时获取播放进度问题
2018/08/28 Javascript
NodeJS加密解密及node-rsa加密解密用法详解
2018/10/12 NodeJs
vant(ZanUi)结合async-validator实现表单验证的方法
2018/12/06 Javascript
jQuery实现移动端下拉展现新的内容回弹动画
2020/06/24 jQuery
在Python中使用CasperJS获取JS渲染生成的HTML内容的教程
2015/04/09 Python
详解python并发获取snmp信息及性能测试
2017/03/27 Python
Python变量和字符串详解
2017/04/29 Python
python3 发送任意文件邮件的实例
2018/01/23 Python
Python实现的当前时间多加一天、一小时、一分钟操作示例
2018/05/21 Python
python获取地震信息 微信实时推送
2019/06/18 Python
英国性能汽车零件和发动机配件在线:Maxpeedingrods
2019/11/05 全球购物
Shopbop中文官网:美国亚马逊旗下时尚购物网站
2020/12/15 全球购物
在校生钳工实习自我鉴定
2013/09/19 职场文书
安全教育心得体会
2013/12/29 职场文书
饭店工作计划书
2014/01/10 职场文书
低碳环保倡议书
2014/04/14 职场文书
节电标语大全
2014/06/23 职场文书
教师演讲稿开场白
2014/08/25 职场文书
2014党员学习《反腐倡廉警示教育读本》思想汇报
2014/09/13 职场文书
2015年毕业生个人自荐书
2015/03/24 职场文书
贫困证明书范文
2015/06/16 职场文书
《英雄联盟》2022日蚀、月蚀皮肤演示 黑潮亚索曝光
2022/04/13 其他游戏