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 相关文章推荐
jquery Firefox3.5中操作select的问题
Jul 10 Javascript
JQuery.closest(),parent(),parents()寻找父结点
Feb 17 Javascript
js FLASH幻灯片字符串中有连接符&的处理方法
Mar 01 Javascript
基于jquery的滚动条滚动固定div(附演示下载)
Oct 29 Javascript
javascript定时变换图片实例代码
Mar 17 Javascript
javascript删除数组元素并且数组长度减小的简单实例
Feb 14 Javascript
实例说明为什么不要行内使用javascript
Apr 18 Javascript
javascript动画之磁性吸附效果篇
Dec 09 Javascript
vue-router 学习快速入门
Mar 01 Javascript
基于vuejs实现一个todolist项目
Apr 11 Javascript
vue获取当前点击的元素并传值的实例
Mar 09 Javascript
在博客园博文中添加自定义右键菜单的方法详解
Feb 05 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
全国FM电台频率大全 - 18 湖南省
2020/03/11 无线电
php笔记之:有规律大文件的读取与写入的分析
2013/04/26 PHP
php去除字符串换行符示例分享
2014/02/13 PHP
php使用NumberFormatter格式化货币的方法
2015/03/21 PHP
thinkPHP连接sqlite3数据库的实现方法(附Thinkphp代码生成器下载)
2016/05/27 PHP
BOOM vs RR BO5 第三场 2.14
2021/03/10 DOTA
Flash对联广告的关闭按钮讨论
2007/01/30 Javascript
在IE上直接编辑网页内容的js代码(IE地址栏js)
2009/04/27 Javascript
JavaScript随机排序(随即出牌)
2010/09/17 Javascript
String.prototype实现的一些javascript函数介绍
2013/11/22 Javascript
网页运行时提示对象不支持abigimage属性或方法
2014/08/10 Javascript
node.js中watch机制详解
2014/11/17 Javascript
jquery仅用6行代码实现滑动门效果
2015/09/07 Javascript
全面了解JavaScript的数据类型转换
2016/07/01 Javascript
js判断PC端与移动端跳转
2020/12/24 Javascript
微信小程序开发入门基础教程
2017/04/19 Javascript
JS判断Android、iOS或浏览器的多种方法(四种方法)
2017/06/29 Javascript
vue.js实现备忘录功能的方法
2017/07/10 Javascript
详解微信小程序中的页面代码中的模板的封装
2017/10/12 Javascript
在vue项目中使用Nprogress.js进度条的方法
2018/01/31 Javascript
vue实现评论列表功能
2019/10/25 Javascript
react-native聊天室|RN版聊天App仿微信实例|RN仿微信界面
2019/11/12 Javascript
解决vue项目 build之后资源文件找不到的问题
2020/09/12 Javascript
python开发中module模块用法实例分析
2015/11/12 Python
python操作mysql数据库
2017/03/05 Python
Python守护进程实现过程详解
2020/02/10 Python
解决Keras中Embedding层masking与Concatenate层不可调和的问题
2020/06/18 Python
个人找工作的自我评价
2013/10/17 职场文书
项目建议书格式
2014/03/12 职场文书
农民工预备党员思想汇报
2014/09/14 职场文书
2014年发展党员工作总结
2014/11/12 职场文书
电影焦裕禄观后感
2015/06/09 职场文书
职位证明模板
2015/06/23 职场文书
心得体会该怎么写呢?
2019/06/27 职场文书
使用react+redux实现计数器功能及遇到问题
2021/06/02 Javascript
Spring Boot项目传参校验的最佳实践指南
2022/04/05 Java/Android