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的例子 上面包 ...
- SpringMVC——概述
Spring 为展现层提供的基于 MVC 设计理念的优秀的Web 框架,是目前最主流的 MVC 框架之一 Spring3.0 后全面超越 Struts2,成为最优秀的 MVC 框架 Spring MV ...
- 2.8.3 并发下诡异的HashMap
package 第二章.并发下诡异的HashMap; import org.junit.Test; import java.util.HashMap;import java.util.Map;impo ...
- Azure:Manage anonymous read access to containers and blobs
Grant anonymous users permissions to containers and blobs By default, a container and any blobs with ...
- (转)使用Jquery+EasyUI进行框架项目开发案例讲解之一---员工管理源码分享
原文地址:http://www.cnblogs.com/huyong/archive/2013/09/24/3334848.html 使用Jquery+EasyUI 进行框架项目开发案例讲解之一 员工 ...
- 企业管理系统——第三周需求&原型改进_张正浩,黄锐斌
企业管理系统——需求&原型改进,架构设计,测试计划 组员:张正浩,黄锐斌 一.需求&原型改进 1.给目标用户展现原型,与目标用户进一步沟通理解需求 我们的目标用户是公司管理员 场景:随 ...
- .net 特性 Attribute
public sealed class RemarkAttribute : Attribute { public string Remark { get; set; } // 构造函数 public ...
- mongodb数据库学习【安装及简单增删改查】
//@desn:mongodb数据库学习 //@desn:码字不宜,转载请注明出处 //@author:张慧源 <turing_zhy@163.com> //@date:2018/08/ ...
- sed 增删改查详解以及 sed -i原理
我为什么要详细记录sed命令: sed 擅长取行.工作中三剑客使用频率最高,本篇文章将对sed命令常用的 增,删,改,查 进行详细讲解,以备以后工作中遗忘了查询,sed命令是作为运维人员来说, ...
- Jmeter_录制HTTPS
[环境] Jmeter版本:Jmeter3.2: JDK版本:JDK1.8 [配置] [1]添加“线程组.Http信息头管理器.httpCookie管理器.HTTP代理服务器”: [2]设置浏览器的“ ...