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 相关文章推荐
jQuery easyui datagrid动态查询数据实例讲解
Feb 26 Javascript
jQuery操作select下拉框的text值和value值的方法
May 31 Javascript
jQuery创建DOM元素实例解析
Jan 19 Javascript
js拖拽功能实现代码解析
Nov 28 Javascript
一个例子轻松学会Vue.js
Jan 02 Javascript
使用BootStrap进行轮播图的制作
Jan 06 Javascript
JavaScript获取select中text值的方法
Feb 13 Javascript
详解Vue基于 Nuxt.js 实现服务端渲染(SSR)
Apr 05 Javascript
微信小程序实现页面浮动导航
Jan 28 Javascript
ES6小技巧之代替lodash
Jun 07 Javascript
javascript简单实现深浅拷贝过程详解
Oct 08 Javascript
javascript数组的定义及操作实例
Nov 10 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的array数组和使用实例简明教程(容易理解)
2014/03/20 PHP
php实现基于pdo的事务处理方法示例
2017/07/21 PHP
Javascript实例教程(19) 使用HoTMetal(6)
2006/12/23 Javascript
Jquery 绑定时间实现代码
2011/05/03 Javascript
js中call与apply的用法小结
2013/12/28 Javascript
Node.js环境下编写爬虫爬取维基百科内容的实例分享
2016/06/12 Javascript
Web程序员必备的7个JavaScript函数
2016/06/14 Javascript
js运动事件函数详解
2016/10/21 Javascript
jQuery开源组件BootstrapValidator使用详解
2017/06/29 jQuery
Angular4编程之表单响应功能示例
2017/12/13 Javascript
JavaScript使用indexOf()实现数组去重的方法分析
2018/09/04 Javascript
详解微信小程序用定时器实现倒计时效果
2019/04/30 Javascript
[42:04]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#3Secret VS OG第一局
2016/03/03 DOTA
[01:09:23]KG vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
[01:06] DOTA2英雄背景故事第三期之秩序法则光之守卫
2020/07/07 DOTA
由Python运算π的值深入Python中科学计算的实现
2015/04/17 Python
python模拟菜刀反弹shell绕过限制【推荐】
2019/06/25 Python
python lambda表达式在sort函数中的使用详解
2019/08/28 Python
python生成特定分布数的实例
2019/12/05 Python
pytorch载入预训练模型后,实现训练指定层
2020/01/06 Python
Python运行提示缺少模块问题解决方案
2020/04/02 Python
python编写扎金花小程序的实例代码
2021/02/23 Python
如何让Java程序执行效率更高
2014/06/25 面试题
UNIX文件系统分类
2014/11/11 面试题
化工专业应届生求职信
2013/11/08 职场文书
《春到梅花山》教学反思
2014/04/16 职场文书
合作经营协议书
2014/04/17 职场文书
学习“七一”讲话精神体会
2014/07/08 职场文书
群众路线教育实践活动的心得体会
2014/09/03 职场文书
2014年党建工作汇报材料
2014/10/27 职场文书
公司环境卫生管理制度
2015/08/05 职场文书
新年祝酒词大全
2015/08/11 职场文书
小学作文之描写天气
2019/08/15 职场文书
django注册用邮箱发送验证码的实现
2021/04/18 Python
SQL模糊查询报:ORA-00909:参数个数无效问题的解决
2021/06/21 Oracle
BCL经典机 SONY ICF-5900W电路分析
2022/04/24 无线电