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 相关文章推荐
FLASH 广告之外的链接
Dec 16 Javascript
一个JQuery写的点击上下滚动的小例子
Aug 27 Javascript
单击某一段文字改写文本颜色
Jun 06 Javascript
理解javascript中的MVC模式
Jan 28 Javascript
Vue组件BootPage实现简单的分页功能
Sep 12 Javascript
微信小程序中页面FOR循环和嵌套循环
Jun 21 Javascript
解决vue+webpack打包路径的问题
Mar 06 Javascript
vue获取当前激活路由的方法
Mar 17 Javascript
D3.js实现简洁实用的动态仪表盘的示例
Apr 04 Javascript
js隐式转换的知识实例讲解
Sep 28 Javascript
Vue内部渲染视图的方法
Sep 02 Javascript
JS co 函数库的含义和用法实例总结
Apr 08 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中计算程序运行时间的类代码
2012/11/03 PHP
Laravel 4.2 中队列服务(queue)使用感受
2014/10/30 PHP
PHP使用Redis长连接的方法详解
2018/02/12 PHP
PHP __call()方法实现委托示例
2019/05/20 PHP
用js自动判断浏览器分辨率的代码
2007/01/28 Javascript
JQuery实现的在新窗口打开链接的方法小结
2010/04/22 Javascript
事件模型在各浏览器中存在差异
2010/10/20 Javascript
写js时遇到的一些小问题
2010/12/06 Javascript
ExtJS中文乱码之GBK格式编码解决方案及代码
2013/01/20 Javascript
ie下$.getJSON出现问题的解决方法
2014/02/12 Javascript
js的Boolean对象初始值示例
2014/03/04 Javascript
javascript密码强度校验代码(两种方法)
2015/08/10 Javascript
设置点击文本框或图片弹出日历控件的实现代码
2016/05/12 Javascript
深入理解Javascript中的自执行匿名函数
2016/06/03 Javascript
JS导出PDF插件的方法(支持中文、图片使用路径)
2016/07/12 Javascript
Bootstrap页面标题Page Header的实现方法
2017/03/22 Javascript
Mongoose中document与object的区别示例详解
2017/09/18 Javascript
JavaScript树的深度优先遍历和广度优先遍历算法示例
2018/07/30 Javascript
深入浅析Node环境和浏览器的区别
2018/08/14 Javascript
angular 服务随记小结
2019/05/06 Javascript
swiper Scrollbar滚动条组件详解
2019/09/08 Javascript
初学vue出现空格警告的原因及其解决方案
2019/10/31 Javascript
微信小程序 bindtap 传参的实例代码
2020/02/21 Javascript
python模块restful使用方法实例
2013/12/10 Python
Python多进程机制实例详解
2015/07/02 Python
Python黑魔法@property装饰器的使用技巧解析
2016/06/16 Python
Python json 错误xx is not JSON serializable解决办法
2017/03/15 Python
用python代码将tiff图片存储到jpg的方法
2018/12/04 Python
python中np是做什么的
2020/07/21 Python
Python如何批量生成和调用变量
2020/11/21 Python
css3中flex布局宽度不生效的解决
2020/12/09 HTML / CSS
经典促销广告词大全
2014/03/19 职场文书
投标单位介绍信
2015/05/05 职场文书
2015年小学校长工作总结
2015/05/19 职场文书
贫困证明怎么写
2015/06/16 职场文书
Win11运行cmd提示“请求的操作需要提升”的两种解决方法
2022/07/07 数码科技