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数组方法
Jan 08 Javascript
JavaScript正则表达式之multiline属性的应用
Jun 16 Javascript
使用AngularJS和PHP的Laravel实现单页评论的方法
Jun 19 Javascript
基于jQuery实现以手风琴方式展开和折叠导航菜单
Jan 28 Javascript
jQuery获取元素父节点的方法
Jun 21 Javascript
js选项卡的制作方法
Jan 23 Javascript
nginx配置React静态页面的方法教程
Nov 03 Javascript
详解JavaScript 浮点数运算的精度问题
Jul 23 Javascript
Vue开发环境跨域访问问题
Jan 22 Javascript
微信小程序vant弹窗组件的实现方式
Feb 21 Javascript
原生js实现拖拽移动与缩放效果
Aug 24 Javascript
three.js 实现露珠滴落动画效果的示例代码
Mar 01 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
星际争霸 Starcraft 游戏介绍
2020/03/14 星际争霸
PHP Cookei记录用户历史浏览信息的代码
2016/02/03 PHP
php的debug相关函数用法示例
2016/07/11 PHP
php中实现进程锁与多进程的方法
2016/09/18 PHP
js arguments.callee的应用代码
2009/05/07 Javascript
jquery 可排列的表实现代码
2009/11/13 Javascript
javascript来定义类的规范小结
2010/11/19 Javascript
浅析Prototype的模板类 Template
2011/12/07 Javascript
Javascript 面向对象(二)封装代码
2012/05/23 Javascript
用按钮控制iframe显示的网页实现方法
2013/02/04 Javascript
JS+CSS实现感应鼠标渐变显示DIV层的方法
2015/02/20 Javascript
jQuery+HTML5实现图片上传前预览效果
2015/08/20 Javascript
js实现网页多级级联菜单代码
2015/08/20 Javascript
vue组件Prop传递数据的实现示例
2017/08/17 Javascript
前端必备插件之纯原生JS的瀑布流插件Macy.js
2017/11/22 Javascript
Vue2.0中三种常用传值方式(父传子、子传父、非父子组件传值)
2018/08/16 Javascript
vue 自定义提示框(Toast)组件的实现代码
2018/08/17 Javascript
说说如何利用 Node.js 代理解决跨域问题
2019/04/22 Javascript
小程序中英文混合排序问题解决
2019/08/02 Javascript
js计算最大公约数和最小公倍数代码实例
2019/09/11 Javascript
layui树形菜单动态遍历的例子
2019/09/23 Javascript
vue实现简单跑马灯效果
2020/05/25 Javascript
[05:53]完美世界携手游戏风云打造 卡尔工作室观战系统篇
2013/04/22 DOTA
基于Python检测动态物体颜色过程解析
2019/12/04 Python
举例详解HTML5中使用JSON格式提交表单
2015/06/16 HTML / CSS
萌新的HTML5 入门指南
2020/11/06 HTML / CSS
水果花束:Fruit Bouquets
2017/12/20 全球购物
国际经济与贸易专业大学生职业规划书
2014/03/01 职场文书
保险内勤岗位职责
2014/04/05 职场文书
电话客服专员岗位职责
2014/06/28 职场文书
教育实践活动对照检查材料
2014/09/23 职场文书
高中班主任评语
2014/12/30 职场文书
学校证明范文
2015/06/24 职场文书
Python scrapy爬取起点中文网小说榜单
2021/06/13 Python
Python OpenCV超详细讲解读取图像视频和网络摄像头
2022/04/02 Python
MySQL count(*)统计总数问题汇总
2022/09/23 MySQL