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 相关文章推荐
IE Firefox 使用自定义标签的区别
Oct 15 Javascript
JavaScript高级程序设计(第3版)学习笔记 概述
Oct 11 Javascript
JavaScript实现把数字转换成中文
Jun 29 Javascript
Jquery遍历select option和添加移除option的实现方法
Aug 26 Javascript
Angular动态添加、删除输入框并计算值实例代码
Mar 29 Javascript
js禁止浏览器的回退事件
Apr 20 Javascript
原生JS实现层叠轮播图
May 17 Javascript
javascript实现非常简单的小数取整功能示例
Jun 13 Javascript
JS实现评价的星星功能
Aug 20 Javascript
Vue-cli项目获取本地json文件数据的实例
Mar 07 Javascript
vue计算属性get和set用法示例
Feb 08 Javascript
vue 子组件修改data或调用操作
Aug 07 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
zend framework多模块多布局配置
2011/02/26 PHP
解析PHP正则提取或替换img标记属性
2013/06/26 PHP
PHP针对多用户实现更换头像功能
2016/09/04 PHP
PHP基于反射机制实现插件的可插拔设计详解
2016/11/10 PHP
PHP实现根据数组的值进行分组的方法
2017/04/20 PHP
[原创]保存的js无法执行的解决办法
2007/02/25 Javascript
javascript 面向对象编程基础 多态
2009/08/21 Javascript
javascript prototype原型操作笔记
2009/12/07 Javascript
extjs 初始化checkboxgroup值的代码
2011/09/21 Javascript
Js中获取frames中的元素示例代码
2013/07/30 Javascript
JavaScript中removeChild 方法开发示例代码
2016/08/15 Javascript
Bootstrap3 多选和单选框(checkbox)
2016/12/29 Javascript
jQuery实现鼠标跟随效果
2017/02/20 Javascript
js获取form表单中name属性的值
2019/02/27 Javascript
详解js动态获取浏览器或页面等容器的宽高
2019/03/13 Javascript
vue实现全屏滚动效果(非fullpage.js)
2020/03/07 Javascript
python目录与文件名操作例子
2016/08/28 Python
Python+OpenCV感兴趣区域ROI提取方法
2019/01/10 Python
python单例设计模式实现解析
2020/01/07 Python
解决pytorch报错:AssertionError: Invalid device id的问题
2020/01/10 Python
Django接收照片储存文件的实例代码
2020/03/07 Python
html5 canvas-1.canvas介绍(hello canvas)
2013/01/07 HTML / CSS
诺心蛋糕官网:LE CAKE
2018/08/25 全球购物
Harrods美国:英国最大的百货公司
2018/11/04 全球购物
Prototype中如何为一个元素添加一个方法
2014/12/08 面试题
奖学金自我鉴定范文
2013/10/03 职场文书
大学生专业个人学习的自我评价
2013/10/26 职场文书
餐饮总经理岗位职责
2014/03/07 职场文书
暑期社会实践先进个人主要事迹
2014/05/22 职场文书
教师个人考察材料
2014/12/16 职场文书
供应商食品安全承诺书
2015/04/29 职场文书
社会实践活动总结格式
2015/05/11 职场文书
大卫科波菲尔读书笔记
2015/06/30 职场文书
Go语言操作数据库及其常规操作的示例代码
2021/04/21 Golang
JS Canvas接口和动画效果大全
2021/04/29 Javascript
MySQL如何构建数据表索引
2021/05/13 MySQL