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跨域获得Json时invalid label错误的解决办法
Jan 11 Javascript
javascript开发技术大全-第1章javascript概述
Jul 03 Javascript
简单实现限制uploadify上传个数
Nov 16 Javascript
AngularJS入门教程之AngularJS 模板
Aug 18 Javascript
JS实现鼠标移上去显示图片或微信二维码
Dec 14 Javascript
js输入框使用正则表达式校验输入内容的实例
Feb 12 Javascript
JS优化与惰性载入函数实例分析
Apr 06 Javascript
前端构建工具之gulp的语法教程
Jun 12 Javascript
Vue.js移动端左滑删除组件的实现代码
Sep 08 Javascript
浅谈Vue.nextTick 的实现方法
Oct 25 Javascript
vue 实现在同一界面实现组件的动态添加和删除功能
Jun 16 Javascript
使用 Github Actions 自动部署 Angular 应用到 Github Pages的方法
Jul 20 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下用cookie统计用户访问网页次数的代码
2010/05/09 PHP
PHP数组编码gbk与utf8互相转换的两种方法
2016/09/01 PHP
php生成复杂验证码(倾斜,正弦干扰线,黏贴,旋转)
2018/03/12 PHP
htm调用JS代码
2007/03/15 Javascript
基于jQuery的合并表格中相同文本的相邻单元格的代码
2011/04/06 Javascript
JS常见问题整理(持续更新)
2013/08/06 Javascript
jquery统计输入文字的个数并对其进行判断
2014/01/07 Javascript
JS中的数组的sort方法使用示例
2014/01/22 Javascript
node.js中的fs.lstatSync方法使用说明
2014/12/16 Javascript
js创建对象的方式总结
2015/01/10 Javascript
在javascript中随机数 math random如何生成指定范围数值的随机数
2015/10/21 Javascript
js中substring和substr两者区别和使用方法
2015/11/09 Javascript
纯JavaScript代码实现文本比较工具
2016/02/17 Javascript
JS在onclientclick里如何控制onclick的执行
2016/05/30 Javascript
Angularjs 依赖压缩及自定义过滤器写法
2017/02/04 Javascript
vue.js加载新的内容(实例代码)
2017/06/01 Javascript
详解基于mpvue的小程序markdown适配解决方案
2018/05/08 Javascript
javascript移动端 电子书 翻页效果实现代码
2019/09/07 Javascript
Vue使用vue-recoure + http-proxy-middleware + vuex配合promise实现基本的跨域请求封装
2019/10/21 Javascript
Node对CommonJS的模块规范
2019/11/06 Javascript
vue父子模板传值问题解决方法案例分析
2020/02/26 Javascript
javascript 设计模式之组合模式原理与应用详解
2020/04/08 Javascript
Javascript查看大图功能代码实现
2020/05/07 Javascript
[53:15]Newbee vs Pain 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python实现多线程下载文件的代码实例
2014/06/01 Python
Python查找函数f(x)=0根的解决方法
2015/05/07 Python
python爬取NUS-WIDE数据库图片
2016/10/05 Python
python编写朴素贝叶斯用于文本分类
2017/12/21 Python
python采集微信公众号文章
2018/12/20 Python
Python进度条的制作代码实例
2019/08/31 Python
关于pymysql模块的使用以及代码详解
2019/09/01 Python
奥地利票务门户网站:oeticket.com
2019/12/31 全球购物
涉外文秘个人求职的自我评价
2013/10/07 职场文书
职业教育毕业生求职信
2013/11/09 职场文书
《孔子游春》教学反思
2014/02/25 职场文书
天网工程实施方案
2014/03/26 职场文书