js自定义Tab选项卡效果


Posted in Javascript onJune 05, 2017

自定义Tab选项卡,具体内容如下

规范HTML格式

在设计选项卡之前,先规范一下HTML的格式。

<div class="m-tab-container">
  <ul >
    <li class="active"><a href="#pane1">面板1</a></li>
    <li><a href="#pane2" rel="external nofollow" >面板2</a></li>
  </ul>
  <div>
    <div id="pane1" class="active">
      这是面板1
    </div>
    <div id="pane2">
      这是面板2
    </div>
  </div>
</div>

如上述代码所示,这里并没有声明太多类名,只有容器样式类m-tab-Container和激活样式类active两个。其他元素的样式都是通过这两个类一层一层往下找然后进行设置。

设计CSS样式

.m-tab-container{
  display:flex;
}
.m-tab-container>ul, .m-tab-container>div{
  padding:0;
  margin:0;
}
.m-tab-container>ul{
  flex:0;
  min-width:50px;
}
.m-tab-container>div{
  position:relative;
  flex:1;
  border:1px solid #ddd;
  background-color:#fff;
  padding:10px;
  z-index:2;
}
.m-tab-container>ul>li{
  display:block;
  margin:0 0 5px 0;
}
.m-tab-container>ul>li>a{
  position:relative;
  line-height:40px;
  display:block;
  width:100%;
  text-align:center;
  text-decoration:none;
  background-color:#fff;
  border: 1px solid #ddd;
  border-right:0;
  z-index:1;
}
.m-tab-container>ul>li>a,
.m-tab-container>ul>li.active>a:hover,
.m-tab-container>ul>li.active>a:link,
.m-tab-container>ul>li.active>a:visited,
.m-tab-container>ul>li.active>a:active{
  color:#000;
}
.m-tab-container>ul>li.active>a{
  z-index:3;
}
.m-tab-container>div>div{
  display:none;
}
.m-tab-container>div>div.active{
  display:block;
}
.m-tab-container>ul>li.active,
.m-tab-container>ul>li.active>a{
  cursor: default;
}

li里面的a标签display设置成block后,长度超过了li,能够覆盖掉内容面板的边框形成空缺(经过测试,li设置边框之后和内容面板的div边框相距不足1px,也可以使用margin让li和div重叠,然后用li覆盖掉div的边框)。

绑定JS代码

(function($) {
 // 页面加载后的工作
 $("div.m-tab-container li a").on("click", function(e) {
  e.preventDefault();
  // 可以在这里判断被点击的a标签是否已经激活   
  $(".active").removeClass("active");
  $(this).closest("li").addClass("active")
  $($(this).attr("href")).addClass("active");
 })
})(jQuery);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
说说掌握JavaScript语言的思想前提想学习js的朋友可以看看
Apr 01 Javascript
jquery css 设置table的奇偶行背景色示例
Jun 03 Javascript
详解JavaScript逻辑And运算符
Dec 04 Javascript
JavaScript中removeChild 方法开发示例代码
Aug 15 Javascript
微信小程序 绘图之饼图实现
Oct 24 Javascript
基于JavaScript实现窗口拖动效果
Jan 18 Javascript
js鼠标经过tab选项卡时实现切换延迟
Mar 24 Javascript
vue移动端弹框组件的实例
Sep 25 Javascript
JS 实现获取验证码 倒计时功能
Oct 29 Javascript
Vue 中文本内容超出规定行数后展开收起的处理的实现方法
Apr 28 Javascript
webpack-mvc 传统多页面组件化开发详解
May 07 Javascript
JavaScript实现滑动门效果
Jan 18 Javascript
纯js实现动态时间显示
Sep 07 #Javascript
深入理解Angular.JS中的Scope继承
Jun 04 #Javascript
yarn的使用与升级Node.js的方法详解
Jun 04 #Javascript
npm国内镜像 安装失败的几种解决方案
Jun 04 #Javascript
Angular 4依赖注入学习教程之InjectToken的使用(八)
Jun 04 #Javascript
Angular 4依赖注入学习教程之ValueProvider的使用(七)
Jun 04 #Javascript
Angular 4依赖注入学习教程之Injectable装饰器(六)
Jun 04 #Javascript
You might like
PHP获取文件夹内文件数的方法
2015/03/12 PHP
laravel 输出最后执行sql 附:whereIn的使用方法
2019/10/10 PHP
Javascript实例教程(19) 使用HoTMetal(3)
2006/12/23 Javascript
Jquery之Ajax运用 学习运用篇
2011/09/26 Javascript
使用jQuery实现的网页版的个人简历(可换肤)
2013/04/19 Javascript
将两个div左右并列显示并实现点击标题切换内容
2013/10/22 Javascript
javascript中数组中求最大值示例代码
2013/12/18 Javascript
jquery实现动态改变div宽度和高度
2015/05/08 Javascript
JS中产生标识符方式的演变
2015/06/12 Javascript
JavaScript遍历Json串浏览器输出的结果不统一问题
2016/11/03 Javascript
JS扩展类,克隆对象与混合类实例分析
2016/11/26 Javascript
常用的javascript设计模式
2017/01/11 Javascript
JavaScript实现类似淘宝的购物车效果
2017/03/16 Javascript
基于vue2实现上拉加载功能
2017/11/28 Javascript
JS实现根据指定值删除数组中的元素操作示例
2018/08/02 Javascript
深入分析element ScrollBar滚动组件源码
2019/01/22 Javascript
vue cli3.0结合echarts3.0与地图的使用方法示例
2019/03/26 Javascript
[58:32]EG vs Liquid 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
[01:34:42]NAVI vs EG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
[36:33]完美世界DOTA2联赛循环赛 Matador vs Forest 第一场 11.06
2020/11/06 DOTA
python实现的解析crontab配置文件代码
2014/06/30 Python
Django中的文件的上传的几种方式
2018/07/23 Python
Flask框架URL管理操作示例【基于@app.route】
2018/07/23 Python
Python3字符串encode与decode的讲解
2019/04/02 Python
Python基于pyjnius库实现访问java类
2020/07/31 Python
HTML5 Canvas——用路径描画线条实例介绍
2013/06/09 HTML / CSS
戴森美国官网:Dyson美国
2016/09/11 全球购物
西班牙自行车和跑步商店:Alltricks
2018/07/07 全球购物
医生辞职信范文
2015/03/02 职场文书
2015年保育员个人工作总结
2015/05/13 职场文书
高中信息技术教学反思
2016/02/16 职场文书
用Python写一个简易版弹球游戏
2021/04/13 Python
Redis5之后版本的高可用集群搭建的实现
2021/04/27 Redis
Pandas自定义选项option设置
2021/07/25 Python
python机器学习实现oneR算法(以鸢尾data为例)
2022/03/03 Python
漫画「你在春天醒来」第10卷封面公开
2022/03/21 日漫