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 相关文章推荐
DOM 基本方法
Jul 18 Javascript
使用ExtJS技术实现的拖动树结点
Aug 05 Javascript
jQuery.Validate验证库的使用介绍
Apr 26 Javascript
node.js应用后台守护进程管理器Forever安装和使用实例
Jun 01 Javascript
js用拖动滑块来控制图片大小的方法
Feb 27 Javascript
js显示动态时间的方法详解
Aug 20 Javascript
浅谈js在html中的加载执行顺序,多个jquery ready执行顺序
Nov 26 Javascript
JS中静态页面实现微信分享功能
Feb 06 Javascript
浅谈angular2的http请求返回结果的subcribe注意事项
Mar 01 Javascript
vue实现吸顶、锚点和滚动高亮按钮效果
Oct 21 Javascript
vue指令v-html使用过滤器filters功能实例
Oct 25 Javascript
通过微信公众平台获取公众号文章的方法示例
Dec 25 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
Window 7/XP 安装Apache 2.4与PHP 5.4 的过程详解
2013/06/02 PHP
php生成过去100年下拉列表的方法
2015/07/20 PHP
php安装dblib扩展,连接mssql的具体步骤
2017/03/02 PHP
Jquery Select操作方法集合脚本之家特别版
2010/05/17 Javascript
最短的IE判断代码
2011/03/13 Javascript
jQuery EasyUI API 中文文档 可调整尺寸
2011/09/29 Javascript
实现web打印的各种方法介绍及实现代码
2013/01/09 Javascript
javascript图像处理—仿射变换深度理解
2013/01/16 Javascript
JavaScript常用全局属性与方法记录积累
2013/07/03 Javascript
浅析jquery ajax异步调用方法中不能给全局变量赋值的原因及解决方法
2014/01/10 Javascript
JavaScript中用toString()方法返回时间为字符串
2015/06/12 Javascript
js实现瀑布流的三种方式比较
2020/06/28 Javascript
JS+CSS实现DIV层的展开、收缩效果
2016/01/28 Javascript
jQuery为某个div加入行样式
2017/06/09 jQuery
微信小程序实现缓存根据不同的id来进行设置和读取缓存
2017/06/12 Javascript
Angular中支持SCSS的方法
2017/11/18 Javascript
VUE + UEditor 单图片跨域上传功能的实现方法
2018/02/08 Javascript
JavaScript图片处理与合成总结
2018/03/04 Javascript
Vue中的混入的使用(vue mixins)
2018/06/01 Javascript
JavaScript作用域、闭包、对象与原型链概念及用法实例总结
2018/08/20 Javascript
jQuery 隐藏/显示效果函数用法实例分析
2020/05/20 jQuery
vue使用vue-quill-editor富文本编辑器且将图片上传到服务器的功能
2021/01/13 Vue.js
Python实现快速多线程ping的方法
2015/07/15 Python
一款简洁的纯css3代码实现的动画导航
2014/10/31 HTML / CSS
美国在线珠宝商店:SZUL
2017/02/11 全球购物
美国室内和室外装饰花盆购物网站:ePlanters
2019/03/22 全球购物
DNA基因检测和分析:23andMe
2019/05/01 全球购物
幼师自我鉴定范文
2013/10/01 职场文书
行政专员岗位职责说明书
2014/07/30 职场文书
2014年银行员工年终自我评价
2014/09/19 职场文书
群众路线自我剖析及整改措施
2014/11/04 职场文书
2014年医院党建工作总结
2014/12/20 职场文书
2015大学生自我评价范文
2015/03/03 职场文书
2015年大学社团工作总结
2015/04/09 职场文书
暑期家教宣传单
2015/07/14 职场文书
Nginx反向代理及负载均衡如何实现(基于linux)
2021/03/31 Servers