javascript实现tabs选项卡切换效果(扩展版)


Posted in Javascript onMarch 19, 2013

前段时间写了个tabs 选项卡切换效果,今天抽空在原有的基础上进行了扩展,加入了自动轮播,这样就变成了类似图片轮播的效果了。
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 .select1,.tabs-nav .select2,.tabs-nav .select3,.tabs-nav .select4{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:;">首页</a> 
<a href="javascript:;">技术</a> 
<a href="javascript:;">生活</a> 
<a href="javascript:;">作品</a> 
</h2> 
<p class="tabs-content">首页首页首页首页首页首页首页首页首页首页</p> 
<p class="tabs-content">技术技术技术技术技术技术技术技术技术技术</p> 
<p class="tabs-content">生活生活生活生活生活生活生活生活生活生活</p> 
<p class="tabs-content">作品作品作品作品作品作品作品作品作品作品</p> 
</div> 
<br/><br/> 
<div class="tabs" id="tabs2"> 
<h2 class="tabs-nav clearfix"> 
<a href="javascript:;">11111</a> 
<a href="javascript:;">22222</a> 
<a href="javascript:;">33333</a> 
</h2> 
<p class="tabs-content">11111111111111111111111111111111111</p> 
<p class="tabs-content ">222222222222222222222222222222222222</p> 
<p class="tabs-content ">333333333333333333333333333333333333333</p> 
</div> 
</body> 
</html> 
<script type="text/javascript" src="tabs.js"></script> 
<script type="text/javascript"> 
window.onload = function(){ 
tabs('tabs','click',true,1000); 
tabs('tabs2','mouseover'); 
} 
</script>

tabs.js 代码:
function tabs(id,trigger,autoplay,time){ 
var tabsWrap = document.getElementById(id); 
var tabsBtn = tabsWrap.getElementsByTagName('h2')[0].getElementsByTagName('a'); 
var tabsContent = getClass('tabs-content',tabsWrap); 
var timer = null; 
var current = 0; 
show(0); 
for(var i = 0,len = tabsBtn.length; i < len; i++){ 
tabsBtn[i].index = i; 
if(trigger == 'click'){ 
tabsBtn[i].onclick = function(){ 
show(this.index); 
} 
}else if(trigger == 'mouseover'){ 
tabsBtn[i].onmouseover = function(){ 
show(this.index); 
} 
} 
} 
if(autoplay){ 
autoPlay(); 
tabsWrap.onmouseover = function(){ 
clearInterval(timer); 
} 
tabsWrap.onmouseout = function(){ 
autoPlay(); 
} 
} 
function autoPlay(){ 
timer = setInterval(function(){ 
show(current); 
current++; 
if(current >= tabsBtn.length){ 
current = 0; 
} 
},time); 
} 
function show(n){ 
current = n; 
for(var i = 0,len = tabsBtn.length; i < len; i++){ 
tabsBtn[i].className = ''; 
tabsContent[i].style.display = 'none'; 
} 
tabsBtn[current].className = 'select' + (current + 1); 
tabsContent[current].style.display = 'block'; 
} 
function getClass(classname,obj){ 
var results = []; 
var elems = obj.getElementsByTagName('*'); 
for(var i = 0; i < elems.length; i++){ 
if(elems[i].className.indexOf(classname) != -1){ 
results[results.length] = elems[i]; 
} 
} 
return results; 
} 
}

PS:这是本人闲着无聊,通过自己所学的 javascript 知识,随意写的一些效果。
Javascript 相关文章推荐
jquery中获取id值方法小结
Sep 22 Javascript
jquery图片倾斜层叠切换特效代码分享
Aug 27 Javascript
JS实现仿苹果底部任务栏菜单效果代码
Aug 28 Javascript
jQuery密码强度检测插件passwordStrength用法实例分析
Oct 30 Javascript
学习JavaScript设计模式之享元模式
Jan 18 Javascript
Bootstrap模态框(modal)垂直居中的实例代码
Aug 18 Javascript
JS简单去除数组中重复项的方法
Sep 13 Javascript
JavaScript数组去重的几种方法效率测试
Oct 23 Javascript
Node.js实现mysql连接池使用事务自动回收连接的方法示例
Feb 03 Javascript
Vue调用后端java接口的实例代码
Oct 28 Javascript
JS中的继承操作实例总结
Jun 06 Javascript
JS实现数据动态渲染的竖向步骤条
Jun 24 Javascript
javascript实现tabs选项卡切换效果(自写原生js)
Mar 19 #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
You might like
php下删除一篇文章生成的多个静态页面
2010/08/08 PHP
PHP中操作ini配置文件的方法
2013/04/25 PHP
比较strtr, str_replace和preg_replace三个函数的效率
2013/06/26 PHP
php格式化时间戳显示友好的时间实现思路及代码
2014/10/23 PHP
PHP计算当前坐标3公里内4个角落的最大最小经纬度实例
2016/02/26 PHP
php基于自定义函数记录log日志方法
2017/07/21 PHP
Yii2.0实现的批量更新及批量插入功能示例
2019/01/29 PHP
动态加载iframe
2006/06/16 Javascript
javascript 类型判断代码分析
2010/03/28 Javascript
实用的JS正则表达式(手机号码/IP正则/邮编正则/电话等)
2013/01/11 Javascript
getAsDataURL在Firefox7.0下无法预览本地图片的解决方法
2013/11/15 Javascript
一个实用的图片切换支持点击切换和自动轮播
2014/09/09 Javascript
JavaScript截断字符串的方法
2015/07/15 Javascript
跟我学习javascript的var预解析与函数声明提升
2015/11/16 Javascript
JavaScript中rem布局在react中的应用
2015/12/09 Javascript
javascript实现下雨效果
2017/03/27 Javascript
详解Vue2.0里过滤器容易踩到的坑
2017/06/01 Javascript
Vee-Validate的使用方法详解
2017/09/22 Javascript
利用vue + koa2 + mockjs模拟数据的方法教程
2017/11/22 Javascript
详解vue项目中实现图片裁剪功能
2019/06/07 Javascript
Python中装饰器的一个妙用
2015/02/08 Python
python3.x上post发送json数据
2018/03/04 Python
Python日期时间模块datetime详解与Python 日期时间的比较,计算实例代码
2018/09/14 Python
使用Python横向合并excel文件的实例
2018/12/11 Python
对python中Librosa的mfcc步骤详解
2019/01/09 Python
python的pygal模块绘制反正切函数图像方法
2019/07/16 Python
Python常驻任务实现接收外界参数代码解析
2020/07/21 Python
澳大利亚优惠网站:Deals.com.au
2019/07/02 全球购物
Python里面如何实现tuple和list的转换
2012/06/13 面试题
市政管理求职信范文
2014/05/07 职场文书
维修工先进事迹
2014/05/29 职场文书
2015年社区工作总结
2015/04/08 职场文书
2015年依法行政工作总结
2015/04/29 职场文书
小学生六年级作文之关于感恩
2019/08/16 职场文书
MySQL系列之六 用户与授权
2021/07/02 MySQL
vue3种table表格选项个数的控制方法
2022/04/14 Vue.js