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 Array扩展实现代码
Oct 14 Javascript
js快速排序的实现代码
Dec 08 Javascript
confirm的用法示例用于按钮操作时确定是否执行
Jun 19 Javascript
Javascript window对象详解
Nov 12 Javascript
Javascript实现图片懒加载插件的方法
Oct 20 Javascript
JS实现简单的天数计算器完整实例
Apr 28 Javascript
js使用i18n实现页面国际化的方法
May 09 Javascript
JS使用tofixed与round处理数据四舍五入的区别
Oct 25 Javascript
Vue添加请求拦截器及vue-resource 拦截器使用
Nov 23 Javascript
Vue中的methods、watch、computed的区别
Nov 26 Javascript
vue双击事件2.0事件监听(点击-双击-鼠标事件)和事件修饰符操作
Jul 27 Javascript
Vue基本指令实例图文讲解
Feb 25 Vue.js
纯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下HTTP Response中的Chunked编码实现方法
2008/11/19 PHP
Yii2实现多域名跨域同步登录退出
2017/02/04 PHP
PHP实现对文件锁进行加锁、解锁操作的方法
2017/07/04 PHP
PHP的Trait机制原理与用法分析
2019/10/18 PHP
基于jquery点击自以外任意处,关闭自身的代码
2012/02/10 Javascript
js获取当前页面的url网址信息
2014/06/12 Javascript
js自动生成的元素与页面原有元素发生堆叠的解决方法
2014/09/04 Javascript
15位和18位身份证JS校验的简单实例
2016/07/18 Javascript
使用Curl命令查看请求响应时间方法
2016/11/04 Javascript
ztree实现权限横向显示功能
2017/05/20 Javascript
AngularJS中filter的使用实例详解
2017/08/25 Javascript
JS实现左边列表移到到右边列表功能
2018/03/28 Javascript
详解vue 计算属性与方法跟侦听器区别(面试考点)
2018/04/23 Javascript
jQuery对底部导航进行跳转并高亮显示的实例代码
2019/04/23 jQuery
vue slot与传参实例代码讲解
2019/04/28 Javascript
vue axios请求成功却进入catch的原因分析
2020/09/08 Javascript
[02:19]DOTA2女子战队FOX视频专访:希望更多美眉一起加入
2013/10/15 DOTA
[01:44]《为梦想出发》—联想杯DOTA2完美世界全国高校联赛
2015/09/30 DOTA
深入浅析ImageMagick命令执行漏洞
2016/10/11 Python
一个简单的python爬虫程序 爬取豆瓣热度Top100以内的电影信息
2018/04/17 Python
python3 爬取图片的实例代码
2018/11/06 Python
详解Python logging调用Logger.info方法的处理过程
2019/02/12 Python
使用 Python 玩转 GitHub 的贡献板(推荐)
2019/04/04 Python
Python实现FTP文件传输的实例
2019/07/07 Python
Python简单实现区域生长方式
2020/01/16 Python
Python configparser模块常用方法解析
2020/05/22 Python
详解html5 canvas常用api总结(二)--绘图API
2016/12/14 HTML / CSS
Sasa莎莎海外旗舰店:香港莎莎美妆平台
2018/03/21 全球购物
机电一体化专业应届生求职信
2013/11/27 职场文书
毕业实习个人鉴定范文
2013/12/10 职场文书
党员公开承诺践诺书
2014/03/25 职场文书
教师党员岗位承诺书
2014/05/29 职场文书
高考作弊检讨书1500字
2015/02/16 职场文书
行政诉讼答辩状
2015/05/21 职场文书
python实现高效的遗传算法
2021/04/07 Python
Golang数据类型和相互转换
2022/04/12 Golang