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 相关文章推荐
推荐dojo学习笔记
Mar 24 Javascript
JS实现的省份级联实例代码
Jun 24 Javascript
自定义jquery模态窗口插件无法在顶层窗口显示问题
May 29 Javascript
JavaScript采用递归算法计算阶乘实例
Aug 04 Javascript
深入学习jQuery Validate表单验证
Jan 18 Javascript
JavaScript基础之AJAX简单的小demo
Jan 29 Javascript
select自定义小三角样式代码(实用总结)
Aug 18 Javascript
vue-cli+webpack项目 修改项目名称的方法
Feb 28 Javascript
JavaScript函数的4种调用方法实例分析
Mar 05 Javascript
JS代码屏蔽F12,右键,粘贴,复制,剪切,选中,操作实例
Sep 17 Javascript
jQuery实现王者荣耀手风琴效果
Jan 17 jQuery
SSM VUE Axios详解
Oct 05 Vue.js
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批量生成图片缩略图的方法
2015/06/18 PHP
tp5(thinkPHP5框架)captcha验证码配置及验证操作示例
2019/05/28 PHP
Laravel 微信小程序后端实现用户登录的示例代码
2019/11/26 PHP
两个比较有用的Javascript工具函数代码
2010/02/17 Javascript
javascript 学习笔记(八)javascript对象
2011/04/12 Javascript
js切换光标示例代码
2013/10/10 Javascript
Js与下拉列表处理问题解决
2014/02/13 Javascript
JavaScript中的bold()方法使用详解
2015/06/08 Javascript
JavaScript模拟实现键盘打字效果
2015/06/29 Javascript
Javascript中的作用域和上下文深入理解
2015/07/03 Javascript
jQuery实现提示密码强度的代码
2015/07/15 Javascript
js下将金额数字每三位一逗号分隔
2016/02/19 Javascript
jQuery获取复选框被选中数量及判断选择值的方法详解
2016/05/25 Javascript
微信小程序 密码输入(源码下载)
2017/06/27 Javascript
webpack 模块热替换原理
2018/04/09 Javascript
在 Angular6 中使用 HTTP 请求服务端数据的步骤详解
2018/08/06 Javascript
vue移动端监听滚动条高度的实现方法
2018/09/03 Javascript
vue 实现input表单元素的disabled示例
2019/10/28 Javascript
python实现同时给多个变量赋值的方法
2015/04/30 Python
解决Tensorflow使用pip安装后没有model目录的问题
2018/06/13 Python
Python 加密与解密小结
2018/12/06 Python
python3安装speech语音模块的方法
2018/12/24 Python
Python根据服务获取端口号的方法
2019/09/25 Python
python 弧度与角度互转实例
2020/04/15 Python
基于html和CSS3制作酷炫的导航栏
2015/09/23 HTML / CSS
使用canvas实现黑客帝国数字雨效果
2020/01/02 HTML / CSS
Html5 new XMLHttpRequest()监听附件上传进度
2021/01/14 HTML / CSS
法学研究生自我鉴定范文
2013/12/04 职场文书
座谈会主持词
2014/03/20 职场文书
2014年自愿离婚协议书
2014/10/10 职场文书
酒店总经理岗位职责
2015/04/01 职场文书
2015大学党建带团建工作总结
2015/07/23 职场文书
退休欢送会致辞
2015/07/31 职场文书
MySQL中的引号和反引号的区别与用法详解
2021/10/24 MySQL
微软Win11什么功能最惊艳? Windows11新功能特性汇总
2021/11/21 数码科技
SQL语句多表联合查询的方法示例
2022/04/18 MySQL