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切换事件的更多相关文章

  1. vue封装tab切换

    vue封装tab切换 预览: 第一种 通过父传子标题,子传父事件 子组件 <template> <div class='app'> <div class="ta ...

  2. 小程序的tab切换事件

    index.wxml代码 <view class="tab-left" > <view " bindtap="tab">tab ...

  3. JS tab切换事件

    $('ul.main-tab>li').on('mousedown', data, function() { var $this = $(this), $box = $('.main-tab-c ...

  4. tab切换插件开发

    我开发的tab切换插件,基于jquery库,实现tab标签页的切换.插件的名称为jquery.tabSwitch.js. 插件实现代码如下: ; (function ($) { $.fn.tabSwi ...

  5. vue -vantUI tab切换时 list组件不触发load事件解决办法

    最近由于公司项目需要,用vue写了几个简单的页面.用到了vantUI List 列表 瀑布流滚动加载,用于控制长列表的展示 当列表即将滚动到底部时,会触发事件并加载更多列表项. (页面加载完成后默认会 ...

  6. 监听浏览器tab选项卡选中事件,点击浏览器tab标签页回调事件,浏览器tab切换监听事件

    js事件注册代码: <script> document.addEventListener('visibilitychange',function(){ //浏览器tab切换监听事件 if( ...

  7. jq 折面板+tab切换(自己封装的插件哦!!)

    如上图所示的一个折面板效果+tab切换:最重要的js代码如下: 对于布局简单介绍下: hot_wrap_li 这个是带箭头的横条: Arrow 这个是箭头的div:hot_wrap_li_wrap 这 ...

  8. Tab Bar Control 的封装和切换

    见视频0414 思路: 1.删除系统自带的TabBar.2.添加UIView,做成自定义的TabBar,覆盖原来的TabBar.3.添加对于的button和切换事件.

  9. WPF案例(-)模拟Windows7 Win+Tab切换

    原文:WPF案例(-)模拟Windows7 Win+Tab切换 一个使用Wpf模拟Windows7 Win+Tab页面切换的小程序,使用快捷键Ctrl+Down或Ctrl+Up在示例程序各个页面元素之 ...

随机推荐

  1. Java总结之Java简介

    一.序言 1.软件的介绍 软件是指一系列按照特定顺序组织的计算机数据和指令的集合. 2.人机交互 实现人与计算机的交互,主要有两种方式: 图形界面方式(Graphical User Interface ...

  2. Hibernate入门教程(二):Hibernate核心API

    1.Configuraction onfiguration configuration = new Configuration(); configuration.configure(); 到src下面 ...

  3. Python - zipfile 乱码问题解决

    最近使用zipfile进行解包过程中遇到了很不舒服的问题,解包之后文件名是乱码的.下面进行简单总结: 首先,乱码肯定是因为解码方式不一样了,zipfile使用的是utf-8和cp437这两种编码方式, ...

  4. 讲真,下次打死我也不敢随便改serialVersionUID了

    讲真,下次打死我也不敢随便改serialVersionUID了 码农沉思录 码农沉思录 微信号 code-thinker 功能介绍 笔者为国内某知名企业不知名码农,专注Java Web领域多年,有丰富 ...

  5. 【学习总结】Python-3-逻辑运算符

    参考:菜鸟教程-Python3运算符 逻辑运算符的计算规则划重点: 并不是只返回布尔型,有时会返回变量的数值 (优先级:not>and>or) 总结: '与或非'三件套中,not与数学逻辑 ...

  6. 面试题:实现call、apply、bind

    面试题:实现call.apply.bind 实现bind module.exports = function(Tcontext, ...args) { let globalThis = typeof ...

  7. Flask配置方法

    flask应用的配置(使用uWSGI和Nginx在CentOS 7上搭建) 基础的Nginx 数据库等配置省略 创建python虚拟环境 sudo pip install virtualenv mkd ...

  8. 2019-9-2-win10-uwp-九幽图床

    title author date CreateTime categories win10 uwp 九幽图床 lindexi 2019-09-02 12:57:38 +0800 2018-2-13 1 ...

  9. 一、Json

    一.Json遍历模糊查询 你没admin 所以这句话报错. //1.写法 dynamic query = from user in jsonObject where (user.ToString(). ...

  10. Windows下Redis安装+可视化工具Redis Desktop Manager使用

    Redis是有名的NoSql数据库,一般Linux都会默认支持.但在Windows环境中,可能需要手动安装设置才能有效使用.这里就简单介绍一下Windows下Redis服务的安装方法,希望能够帮到你. ...