这是一款效果非常炫酷的HTML5 SVG和jQuery垂直选项卡布局特效。该选项卡布局将tabs垂直排列在左侧,每个Tab都使用SVG来制作图标,当用户切换Tab时,旧的选项卡往上移动,新的选项卡从上面往下移动,效果非常酷。
制作方法
HTML结构
该选项卡使用一个div#wrapper作为整个选项卡的包裹元素。选项卡的左侧部分为div.left-side,这里是选项卡的Tabs,使用无序列表来制作。里面的图标使用<svg>来制作,在<svg>中使用<use>元素的xlink:href属性来引用相应的图标。右侧部分div#right-side中,每一个Tab页面都使用一个<div>来制作,同样在每个Tab页面中都使用<svg>来制作相应的图标。
<div id="wrapper">
<div id="left-side">
<ul>
<li class="choose active">
<div class="icon active">
<svg viewBox="0 0 32 32">
<g filter="">
<use xlink:href="#shopping-cart"></use>
</g>
</svg>
</div>
Choose
</li>
......
</ul>
</div>
<div id="border">
<div id="line" class="one"></div>
</div>
<div id="right-side">
<div id="first" class="active">
<div class="icon big">
<svg viewBox="0 0 32 32">
<g filter="">
<use xlink:href="#shopping-cart"></use>
</g>
</svg>
</div>
<h1>Choose your gift</h1>
<p>.......</p>
</div>
......
</div>
</div>
CSS样式
该选项卡布局的CSS代码中,要注意的是它使用的是CSS3 flex属性来布局。IE11以下的浏览器不支持flex属性,这些浏览器中布局界面会发生混乱。左边的Tab标签的布局代码如下:
#wrapper {
width: 900px;
height: 400px;
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
margin: auto;
background-color: #fff;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-webkit-align-items: center;
-ms-flex-align: center;
align-items: center;
-webkit-box-pack: left;
-webkit-justify-content: left;
-ms-flex-pack: left;
justify-content: left;
overflow: hidden;
}
#left-side {
height: 70%;
width: 25%;
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-webkit-align-items: center;
-ms-flex-align: center;
align-items: center;
-webkit-box-pack: center;
-webkit-justify-content: center;
-ms-flex-pack: center;
justify-content: center;
}
#left-side ul li {
padding-top: 10px;
padding-bottom: 10px;
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
line-height: 34px;
color: rgba(51, 51, 51, 0.5);
font-weight: 500;
cursor: pointer;
-webkit-transition: all .2s ease-out;
transition: all .2s ease-out;
}
#left-side ul li:hover {
color: #333333;
-webkit-transition: all .2s ease-out;
transition: all .2s ease-out;
}
#left-side ul li:hover > .icon {
fill: #333;
}
#left-side ul li.active {
color: #333333;
}
#left-side ul li.active:hover > .icon {
fill: #E74C3C;
}
该选项卡布局特效使用jQuery来为各个tabs按钮的点击事件和切换图标,以及当前激活的Tab的右侧红线添加和移除相应的class。