我有一个选项卡内容,其中有4个选项卡,在每个选项卡中都会有两个div组成边框设计。 我遇到的问题是,我不知道如何动画化这些div以在选择它们所在的选项卡时更改其高度。这里有一个参考fiddle,以下是标记。
我希望第一个标签页保持当前 div 的高度,即 38 像素,但我希望其他三个标签页的高度为 185 像素,并且在选择该标签页时将其高度从 38px 增长到 185px。动画效果类似于应用了 :hover css 选择器并带有 0.5 秒过渡的 div,但它会在选择标签页时发生,而不是在鼠标悬停时发生。
如果问题描述不够详细或不够具体,请见谅,这是我第一次发布问题和处理 jQuery。
<div class="container">
<ul class="tabs">
<li class="tab-link current" data-tab="tab-1" id="welcome_selector">Welcome</li>
<li class="tab-link" data-tab="tab-2">Tab Two</li>
<li class="tab-link" data-tab="tab-3">Tab Three</li>
<li class="tab-link" data-tab="tab-4">Tab Four</li>
</ul>
<div class="tabcontentcontainer">
<div id="tab-1" class="tab-content current"> <div class="bordertop_animate"> </div>welcome tab will be empty, save for the borders <div class="borderbottom_animate"></div></div>
<div id="tab-2" class="tab-content"><div class="bordertop_animate"></div> tab 2 content<div class="borderbottom_animate"></div> </div>
<div id="tab-3" class="tab-content"><div class="bordertop_animate"></div> tab 3 content<div class="borderbottom_animate"></div> </div>
<div id="tab-4" class="tab-content"><div class="bordertop_animate"></div> tab 4 content<div class="borderbottom_animate"></div>
</div>
</div>
</div>
CSS
.container {
width: 1000px;
min-height: 400px;
margin: 0 auto;
}
ul.tabs {
margin: 0px;
padding: 0px;
list-style: none;
background: #000;
vertical-align: middle;
font-weight: 400;
color:#FFF;
text-align: right;
text-transform: uppercase;
font-size: 8px;
letter-spacing: 0.6px;
}
ul.tabs li {
background: #000;
vertical-align: middle;
font-weight: 400;
color:#FFF;
text-align: right;
text-transform: uppercase;
font-size: 8px;
letter-spacing: 0.6px;
display: inline-block;
padding: 55px 15px 55px 15px;
cursor: pointer;
}
ul.tabs li.current {
background: #000;
color: #FFF;
}
#welcome_selector {
float: left;
padding-left: 128px;
}
.tabcontentcontainer {
height: 400px;
width: 1000px;
background: url(http://placehold.it/1000x400) #000;
position: relative;
}
.tab-content {
display: none;
background: rgba(0, 0, 0, 0.0);
padding: 15px;
}
.tab-content.current {
display: inherit;
}
.bordertop_animate {
position: absolute;
height: 38px;
width: 966px;
border-top: 2px solid #FFF;
border-right: 2px solid #FFF;
border-bottom: 0px solid #FFF;
border-left: 2px solid #FFF;
}
.borderbottom_animate {
position: absolute;
bottom: 15px;
height: 38px;
width: 966px;
border-top: 0px solid #FFF;
border-right: 2px solid #FFF;
border-bottom: 2px solid #FFF;
border-left: 2px solid #FFF;
}
JS
$(document).ready(function(){
$('ul.tabs li').click(function(){
var tab_id = $(this).attr('data-tab');
$('ul.tabs li').removeClass('current');
$('.tab-content').removeClass('current');
$(this).addClass('current');
$("#"+tab_id).addClass('current');
})
})
我希望第一个标签页保持当前 div 的高度,即 38 像素,但我希望其他三个标签页的高度为 185 像素,并且在选择该标签页时将其高度从 38px 增长到 185px。动画效果类似于应用了 :hover css 选择器并带有 0.5 秒过渡的 div,但它会在选择标签页时发生,而不是在鼠标悬停时发生。
如果问题描述不够详细或不够具体,请见谅,这是我第一次发布问题和处理 jQuery。
var tab_id = $(this).attr('data-tab'); $(this).addClass('current').siblings().removeClass('current'); $("#"+tab_id).addClass('current').siblings().removeClass('current');
- Popnoodles