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可配置循环左右滚动例子
Sep 09 Javascript
ASP.NET jQuery 实例16 通过控件CustomValidator验证RadioButtonList
Feb 03 Javascript
JQuery 实现在同一页面锚点链接之间的平滑滚动
Oct 29 Javascript
jquery移动节点实例
Jan 14 Javascript
js动态修改表格行colspan列跨度的方法
Mar 30 Javascript
js获取当前时间(昨天、今天、明天)
Nov 23 Javascript
node.js 和HTML5开发本地桌面应用程序
Dec 13 Javascript
Mac下使用charles遇到的问题以及解决办法
Jan 10 Javascript
详解webpack打包vue时提取css
May 26 Javascript
jquery.rotate.js实现可选抽奖次数和中奖内容的转盘抽奖代码
Aug 23 jQuery
vue 中 elment-ui table合并上下两行相同数据单元格
Dec 26 Javascript
利用前端HTML+CSS+JS开发简单的TODOLIST功能(记事本)
Apr 13 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
仿AS3实现PHP 事件机制实现代码
2011/01/27 PHP
PHP通用检测函数集合
2011/02/08 PHP
比较discuz和ecshop的截取字符串函数php版
2012/09/03 PHP
PHP MySql增删改查的简单实例
2016/06/21 PHP
yii2.0框架实现上传excel文件后导入到数据库的方法示例
2020/04/13 PHP
jquery 输入框数字限制插件
2009/11/10 Javascript
JavaScript String.replace函数参数实例说明
2013/06/06 Javascript
将Datatable转化成json发送前台实现思路
2013/09/06 Javascript
jquery实现显示已选用户
2014/07/21 Javascript
Nodejs中调用系统命令、Shell脚本和Python脚本的方法和实例
2015/01/01 NodeJs
NodeJS中Buffer模块详解
2015/01/07 NodeJs
使用mouse事件实现简单的鼠标经过特效
2015/01/30 Javascript
原生js结合html5制作简易的双色子游戏
2015/03/30 Javascript
理解javascript中Map代替循环
2016/02/26 Javascript
confirm确认对话框的实现方法总结
2016/06/17 Javascript
js实现多张图片延迟加载效果
2017/07/17 Javascript
基于Vue单文件组件详解
2017/09/15 Javascript
浅谈Vue Element中Select下拉框选取值的问题
2018/03/01 Javascript
vue监听input标签的value值方法
2018/08/27 Javascript
vue实现下载文件流完整前后端代码
2020/11/17 Vue.js
python3生成随机数实例
2014/10/20 Python
开源软件包和环境管理系统Anaconda的安装使用
2017/09/04 Python
浅谈python爬虫使用Selenium模拟浏览器行为
2018/02/23 Python
Python爬虫实现全国失信被执行人名单查询功能示例
2018/05/03 Python
python 3.6.4 安装配置方法图文教程
2018/09/18 Python
python实现桌面托盘气泡提示
2019/07/29 Python
Tory Burch美国官方网站:美国时尚生活品牌
2016/08/01 全球购物
Java基础知识面试题
2014/03/25 面试题
什么是servlet
2012/05/08 面试题
工地资料员岗位职责
2013/12/31 职场文书
英语专业毕业生自荐信范文
2013/12/31 职场文书
教师信息技术学习心得体会
2016/01/21 职场文书
2016年度创先争优活动总结
2016/04/05 职场文书
2016年度农村党员干部主题教育活动总结
2016/04/06 职场文书
Python基础数据类型tuple元组的概念与用法
2021/08/02 Python
ant design charts 获取后端接口数据展示
2022/05/25 Javascript