js插件编程-tab框
JS代码
(function (w) {
//tab对象
function Tab(config) {
//定义变量,防止变量污染
this.tabMenus=null;
this.tabMains=null;
if(config){
this._init(config);
}
}
//为原型添加属性,防止内存重复创建
Tab.prototype={
_init:function (config) {
//初始化元素
this.initElements(config);
this.initEvent();
if(config.auto){
this.autoPlay();
}
},
initElements:function (config) {
var tabMenu=document.getElementById(config.tabMenu);
var tabMain=document.getElementById(config.tabMain);
this.tabMenus=tabMenu.children;
this.tabMains=tabMain.children;
},
initEvent:function () {
for(var i=;i<this.tabMenus.length;i++){
var li=this.tabMenus[i];
li.index=i;
//定义this变量存储,闭包环境可以调用此变量
var that=this;
li.onclick=function () {
that.change(this);
}
}
},
change:function (tabMenu) {
for(var i=;i<this.tabMenus.length;i++){
this.tabMenus[i].className="";
this.tabMains[i].className="main";
}
tabMenu.className="active";
this.tabMains[tabMenu.index].className+=" select";
},
autoPlay:function () {
var index=;
var that=this;
setInterval(function () {
index++;
if(index>=that.tabMenus.length){
index=;
}
that.change(that.tabMenus[index]);
},);
}
}
//将插件暴露给windows
w.Tab=Tab;
})(window)
HTML代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" type="text/css" href="tab.css">
</head>
<body>
<div class="wrapper">
<ul class="tab" id="menu">
<li class="active">国际大牌<span>◆</span></li>
<li>国妆名牌<span>◆</span></li>
<li>清洁用品<span>◆</span></li>
<li>男士精品</li>
</ul>
<div class="products" id="main">
<div class="main select"><a href="#"><img src="imgs/guojidapai.jpg"></a></div>
<div class="main"><a href="#"><img src="imgs/guozhuangmingpin.jpg"></a></div>
<div class="main"><a href="#"><img src="imgs/qingjieyongpin.jpg"></a></div>
<div class="main"><a href="#"><img src="imgs/nanshijingpin.jpg"></a></div>
</div>
</div>
</body>
<script type="text/javascript" src="tab.js"></script>
<script>
var tb=new Tab({
tabMenu:"menu",
tabMain:"main",
auto:true
});
</script>
</html>
css代码
html,body,ul,li {
margin: ;
padding: ;
}
ul{
list-style: none;
}
.wrapper {
margin: auto;
width: 1000px;
height: 475px;
margin-top: 100px;
}
.wrapper .tab {
width: 320px;
height: 36px;
border: 1px solid #ddd;
border-bottom: ;
}
.wrapper .tab li{
float:left;
width: 80px;
height: 34px;
line-height: 34px;
cursor: pointer;
text-align: center;
border-top: 4px solid #fff;
position: relative;
}
.wrapper .tab .active{
border-top: 4px solid red;
}
.wrapper .tab span{
width: 1px;
height: 14px;
background-color: #ddd;
position: absolute;
right:0px;
top:10px;
overflow: hidden;
}
.wrapper .products{
width: 1002px;
height: 476px;
border:1px solid #ddd;
}
.wrapper .products .main{
float: left;
display: none;
}
.wrapper .products .select{
display: block;
}
js插件编程-tab框的更多相关文章
- Bootstrap的js插件之警告框(alert.js)
data-dismiss="alert"--为关闭button加入该属性能够使其自己主动为警告框赋予关闭功能. .fade .in--为警告框在关闭时加入动画效果. 很多其它细节參 ...
- 使用bootstrap的JS插件实现模态框效果
在上一篇文章中,我们使用 js+css 实现了模态框效果,在理解了模态框的基本实现方法和实现效果后,我们就要寻找更快捷的方法,又快又好的来完成模态框开发需求,从而节约时间,提高效率.一个好的轮子,不仅 ...
- 玩转Bootstrap(JS插件篇)-第1章 模态弹出框 :1-1导入JavaScript插件
导入JavaScript插件 Bootstrap除了包含丰富的Web组件之外,如前面介绍的下拉菜单.按钮组.导航.分页等.他还包括一些JavaScript的插件. Bootstrap的JavaScri ...
- js控制Bootstrap 模态框(Modal)插件
js控制Bootstrap 模态框(Modal)插件 http://www.cnblogs.com/zzjeny/p/5564400.html
- Bootstrap入门(三十)JS插件7:警告框
Bootstrap入门(三十)JS插件7:警告框 通过这个插件可以为警告信息添加点击以及消失的功能. 当使用一个.close按钮,它必须是第一个子元素.alert-dismissible,并没有文字内 ...
- Bootstrap入门(二十九)JS插件6:弹出框
Bootstrap入门(二十九)JS插件6:弹出框 加入小覆盖的内容,像在iPad上,用于存放非主要信息 弹出框是依赖于工具提示插件的,那它也和工具提示是一样的,是需要初始化才能够使用的 首先我们引入 ...
- Bootstrap入门(二十三)JS插件1:模态框
Bootstrap入门(二十三)JS插件1:模态框 1.静态实例 2.动态实例 3.模态框的尺寸和效果 4.包含表单的模态框 模态框经过了优化,更加灵活,以弹出对话框的形式出现,具有最小和最实用的功能 ...
- Highchar.js插件提示框千分位显示为空格而不是逗号 --(2018 08/06-08/12周总结)
1.Oracle在已经存在主键的表中插入复合主键的SQL语句 如已有一个表test_key,其中a1列为主键. CREATE TABLE TEST_KEY( A1 VARCHAR2(3) NOT NU ...
- [Js插件]使用JqueryUI的弹出框做一个“炫”的登录页面
引言 查看项目代码的时候,发现项目中用到JqueryUi的弹出框,可拖拽,可设置模式对话框,就想着使用它弄一个登录页面. 弹出框 在Jquery Ui官网可定制下载弹出框,下载和弹出框下载相关的js文 ...
随机推荐
- 第十九课 pluginlib&Nodelet
把rgb摄像头的数据转换为laser的时候使用了Nodelet. pluginlib(插件库) 在ros中有一个plugin的包,下面是一个ROS Plugin Registration的例子 上面包 ...
- myeclipse自动化提示
jsp自动提示:1.快捷键提示代码 window-->Preferences的General-->Keys下修改Content Assist的快捷键为Alt+/,这样就可以通过快捷键得到提 ...
- Which Uri Encoding method should i use in C#/.net?
June 19, 2015 This too is one of the boring "factual" posts. Sorry Lachlan. I never know w ...
- 扫描工具——Meterpreter
Meterpreter是Metasploit框架中的一个杀手锏,通常作为利用漏洞后的攻击载荷所使用,攻击载荷在触发漏洞后能够返回给用户一个控制通道.当使用Armitage.MSFCLI或MSFCONS ...
- Android 自定义ViewGroup,实现侧方位滑动菜单
侧方位滑动菜单 1.现在adnroid流行的应用当中很多都是用的侧方位滑动菜单如图:
- SharePoint 2013备份方法整理
关于SharePoint备份 SharePoint的备份是一个数据副本,主要用于在系统出现故障后还原和恢复该数据. 备份的工具主要有以下几种(写的不全,欢迎补充.) SharePoint管理中心的备份 ...
- C#英文面试常见问题[转]
I was reading a post about some common C# interview questions, and thought I'd share some of mine. T ...
- c++多线程基础4(条件变量)
条件变量是允许多个线程相互交流的同步原语.它允许一定量的线程等待(可以定时)另一线程的提醒,然后再继续.条件变量始终关联到一个互斥 定义于头文件 <condition_variable> ...
- 再谈VS2010编译更高平台vs2012(v110),vs2015(v140)的objectARX程序
前段时间我贴了一篇vs2010批量编译vc6~vs2008的ARX版本,实际上那一篇是我在研究vs2010编译v110,v140平台的附带收获,正应了那句话,有心栽花花不开,无心插柳柳成荫,因为vs2 ...
- 【离散数学】 SDUT OJ 建图
建图 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Problem Description 编程使得程序可以接受一个图的点边 ...