这是一款效果非常炫酷的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。