封装tab切换事件
HTML
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style>
*{
padding:0;
margin:0;
}
li{ vertical-align:bottom; list-style-type:none;}
.tab{
width:400px;
}
.tab_nav{
width:100%;
display: flex;
display: box;
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
}
.tab_nav li{
position: relative;
-webkit-box-flex: 1;
-moz-box-flex: 1;
-webkit-flex: 1;
-ms-flex: 1;
flex: 1;
text-align:center;
padding:10px 0;
border:1px solid #e8e8e8;
border-bottom:0;
font-size: 12px;
margin-left:5px;
border-radius: 4px 4px 0 0;
background: #fcfcfc;
cursor: pointer;
}
.tab_nav li:first-child{
margin-left:0px;
}
.tab_nav li:active ,.tab_nav li.row{
background: #fff;
}
.tab_cont{
width:100%;
border:1px solid #e8e8e8;
box-sizing: border-box;
}
</style>
</head>
<body>
<div class="tab" id="tab">
<ul class="tab_nav" id="tab_nav">
<li>首页</li>
<li>首页</li>
<li>首页</li>
</ul>
<div class="tab_cont" id="tab_cont">
<div class="tab_contLi" style="display:none;">1</div>
<div class="tab_contLi" style="display: none;">2</div>
<div class="tab_contLi" style="display: none;">3</div>
</div>
</div>
</body>
</html>
<script type="text/javascript" src="tab.js"></script>
<script>
_myTab.openEvent({
tab_nav:"tab_nav",//tab头部标签的ID
tab_cont:"tab_cont",//tab切换时内容的ID
tab_row:"row",//选中状态tab的类名
/* tab_index:1,//设置默认显示第几个*/
tab_event:"click" //添加点击还是划入事件
})
</script>
tabJS事件的封装
(function(window,undefined){
var myTab=function(){};
myTab.prototype = {
openEvent:function(params){
this.opt=params;
this.tabdefault();
this.tabEvent();
},
tabdefault:function(){
var tab_navLi=document.getElementById(this.opt.tab_nav).getElementsByTagName("li");
var tab_contDiv=document.getElementById(this.opt.tab_cont).children;
if(this.opt.tab_index !== undefined && this.opt.tab_index !== " " ){
tab_navLi[this.opt.tab_index].className="row";
tab_contDiv[this.opt.tab_index].style.display="block";
}else{
tab_navLi[0].className="row";
tab_contDiv[0].style.display="block";
}
},
tabEvent:function(){
var tab_navLi=document.getElementById(this.opt.tab_nav).getElementsByTagName("li");
var tab_contDiv=document.getElementById(this.opt.tab_cont).children;
var tab_event=this.opt.tab_event;
for(var i=0;i<tab_navLi.length;i++){
//即时运行
(function(i){
tab_navLi[i].addEventListener(tab_event,function(){
var Zindex=i;
for(var j=0;j<tab_navLi.length;j++){
tab_navLi[j].className="";
tab_contDiv[j].style.display="none";
};
tab_navLi[Zindex].className="row";
tab_contDiv[Zindex].style.display="block";
});
})(i);
}
}
}
window.myTab=myTab;
})(window,undefined);
var _myTab= new myTab();
封装tab切换事件的更多相关文章
- vue封装tab切换
vue封装tab切换 预览: 第一种 通过父传子标题,子传父事件 子组件 <template> <div class='app'> <div class="ta ...
- 小程序的tab切换事件
index.wxml代码 <view class="tab-left" > <view " bindtap="tab">tab ...
- JS tab切换事件
$('ul.main-tab>li').on('mousedown', data, function() { var $this = $(this), $box = $('.main-tab-c ...
- tab切换插件开发
我开发的tab切换插件,基于jquery库,实现tab标签页的切换.插件的名称为jquery.tabSwitch.js. 插件实现代码如下: ; (function ($) { $.fn.tabSwi ...
- vue -vantUI tab切换时 list组件不触发load事件解决办法
最近由于公司项目需要,用vue写了几个简单的页面.用到了vantUI List 列表 瀑布流滚动加载,用于控制长列表的展示 当列表即将滚动到底部时,会触发事件并加载更多列表项. (页面加载完成后默认会 ...
- 监听浏览器tab选项卡选中事件,点击浏览器tab标签页回调事件,浏览器tab切换监听事件
js事件注册代码: <script> document.addEventListener('visibilitychange',function(){ //浏览器tab切换监听事件 if( ...
- jq 折面板+tab切换(自己封装的插件哦!!)
如上图所示的一个折面板效果+tab切换:最重要的js代码如下: 对于布局简单介绍下: hot_wrap_li 这个是带箭头的横条: Arrow 这个是箭头的div:hot_wrap_li_wrap 这 ...
- Tab Bar Control 的封装和切换
见视频0414 思路: 1.删除系统自带的TabBar.2.添加UIView,做成自定义的TabBar,覆盖原来的TabBar.3.添加对于的button和切换事件.
- WPF案例(-)模拟Windows7 Win+Tab切换
原文:WPF案例(-)模拟Windows7 Win+Tab切换 一个使用Wpf模拟Windows7 Win+Tab页面切换的小程序,使用快捷键Ctrl+Down或Ctrl+Up在示例程序各个页面元素之 ...
随机推荐
- Codesys 使用共享内存 打通通讯
Codesys V3.5 平台 提供了库SysShm,其中包含了共享内存操作的接口函数: SysSharedMemoryClose; SysSharedMemoryCreate; SysShare ...
- matplotlib系列——线的属性
幕布视图:https://mubu.com/doc/alG8r_3iSw 参考文献:嵩天的Python课程讲义 示例(更多示例:matplotlib系列——折线图) 效果 颜色 线的风格 标记类型 ...
- Winsock编程原理——面向连接
Winsock编程原理——面向连接 Windows Sockets使用套接字进行编程,套接字编程是面向客户端/服务器模型而设计的,因此系统中需要客户端和服务器两个不同类型的进程,根据连接类型的不同,对 ...
- java 数组的定义
package java03; /* 数组的初始化:就是创建一个数组,并向其中古语一些默认的值 两种常见的初始化方式: 1.动态初始化(指定长度) 2.静态初始化(指定内容) 动态初始化数组格式: 数 ...
- Vue2 实现时空穿梭框功能模块
前言 这篇文章主要是分享一个时空穿梭框功能,也就是我们平时用的选择功能.勾选了的项就会进入到另一个框中. 时空穿梭框之旅 示例演示: 这个时空穿梭框实现了: 1.可以全选.反选 2.没有选中时,不可以 ...
- C++在windows平台下不存在strptime函数,可以绕过该函数
https://blog.csdn.net/u011077672/article/details/50524469?utm_source=blogxgwz1
- 本地MongoDB服务开启与连接本地以及远程服务器MongoDB服务
转载:https://blog.csdn.net/sunshinegyan/article/details/80017012 前提:本地已经安装好了MongoDB服务 1启动MongoDB: 方法1: ...
- mysql查询表的创建时间
mysql查询表的创建时间 查询语句: SELECT table_name,create_time FROM information_schema.TABLES;
- python连接mongodb集群
一 安装模块pymongo pip3 install pymongo 二 创建一个MongoClient conn=MongoClient('mongodb://cbi:pass@ip1:20000, ...
- LR之-参数化
1.改变参数化主要在于select next now和update value on这个二个选项 sequential:顺序取值 random:随机取值 unique:唯一取值 same line a ...