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 相关文章推荐
cssQuery()的下载与使用方法
Jan 12 Javascript
一个JS翻页效果
Jul 23 Javascript
节点的插入之append()和appendTo()的用法介绍
Jan 13 Javascript
JQuery记住用户名和密码的具体实现
Apr 04 Javascript
特殊情况下如何获取span里面的值
May 20 Javascript
正则表达式优化JSON字符串的技巧
Dec 24 Javascript
JS密码生成与强度检测完整实例(附demo源码下载)
Apr 06 Javascript
js阻止默认浏览器行为与冒泡行为的实现代码
May 15 Javascript
深入理解jQuery之防止冒泡事件
May 24 Javascript
微信小程序开发之相册选择和拍照详解及实例代码
Feb 22 Javascript
详解使用VueJS开发项目中的兼容问题
Aug 02 Javascript
node+express框架中连接使用mysql(经验总结)
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中this,self,parent的区别详解
2013/06/08 PHP
PHP上传文件时文件过大$_FILES为空的解决方法
2013/11/26 PHP
php下载excel无法打开的解决方法
2013/12/24 PHP
MyEclipse常用配置图文教程
2014/09/11 PHP
PHP获取QQ达人QQ信息的方法
2015/03/05 PHP
PHP使用PHPexcel导入导出数据的方法
2015/11/14 PHP
THinkPHP获取客户端IP与IP地址查询的方法
2016/11/14 PHP
php设计模式之工厂方法模式分析【星际争霸游戏案例】
2020/01/23 PHP
lib.utf.js
2007/08/21 Javascript
推荐8款jQuery轻量级树形Tree插件
2014/11/12 Javascript
jQuery中toggleClass()方法用法实例
2015/01/05 Javascript
javascript实现tab切换特效
2015/11/12 Javascript
node.js+express制作网页计算器
2016/01/17 Javascript
Node.js的npm包管理器基础使用教程
2016/05/26 Javascript
原生JS进行前后端同构
2018/04/22 Javascript
详解JavaScript事件循环机制
2018/09/07 Javascript
Vue 2.0 侦听器 watch属性代码详解
2019/06/19 Javascript
[02:44]DOTA2英雄基础教程 克林克兹
2014/01/15 DOTA
python实现查找excel里某一列重复数据并且剔除后打印的方法
2015/05/26 Python
Python实现在线音乐播放器
2017/03/03 Python
django基础之数据库操作方法(详解)
2017/05/24 Python
Python3爬虫学习之MySQL数据库存储爬取的信息详解
2018/12/12 Python
Python 最大概率法进行汉语切分的方法
2018/12/14 Python
Python实现自定义读写分离代码实例
2019/11/16 Python
pytorch SENet实现案例
2020/06/24 Python
墨尔本复古时尚品牌:Dangerfield
2018/12/12 全球购物
美国社交购物市场:MassGenie
2019/02/18 全球购物
一些网络技术方面的面试题
2014/05/01 面试题
一些Solaris面试题
2013/03/22 面试题
JAVA软件工程师测试题
2014/07/25 面试题
JS原生实现轮播图的几种方法
2021/03/23 Javascript
计算机本科生自荐信
2013/10/15 职场文书
校园安全演讲稿
2014/05/09 职场文书
公共机构节能宣传周活动总结
2014/07/09 职场文书
信访维稳承诺书
2015/05/04 职场文书
nginx常用配置conf的示例代码详解
2022/03/21 Servers