js自定义Tab选项卡效果

自定义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);

以上是 js自定义Tab选项卡效果 的全部内容, 来源链接: utcz.com/z/360868.html

回到顶部