Twitter bootstrap 3 tab view fade не работает должным образом
Я использую twitter bootstrap 3, применяя .fade
для отображения вкладок с постепенным исчезновением. Этот штраф, за исключением первого содержимого вкладки, не отображается в первый раз:
http://jsfiddle.net/tVSv9/
<ul class="nav nav-tabs" id="myTab">
<li class="active"><a href="#home" data-toggle="tab">Home</a></li>
<li><a href="#profile" data-toggle="tab">Profile</a></li>
<li><a href="#messages" data-toggle="tab">Messages</a></li>
</ul>
<div id='content' class="tab-content">
<div class="tab-pane fade active" id="home">
<ul>
<li>home</li>
<li>home</li>
<li>home</li>
<li>home</li>
<li>home</li>
<li>home</li>
<li>home</li>
</ul>
</div>
<div class="tab-pane fade" id="profile">
<ul>
<li>profile</li>
<li>profile</li>
<li>profile</li>
<li>profile</li>
<li>profile</li>
<li>profile</li>
<li>profile</li>
</ul>
</div>
<div class="tab-pane fade" id="messages">
this is my message
</div>
<div class="tab-pane fade" id="settings"></div>
</div>
Где проблема внутри кода?
Ответы
Ответ 1
Вам нужно добавить класс in
в активный контент вкладки
Причина заключается в предопределенном стиле в bootstrap css .fade.in {opacity: 1;}
, поэтому, если вы используете .fade
в закладке, вам также нужно добавить .in
См. эту демонстрацию
HTML
<div class="tab-pane fade in active" id="home">
Ответ 2
Это немного странно, но я мог подумать о быстром взломе, чтобы добиться этого.
$('.nav li.active').removeClass('active').find('a').trigger('click');
Поместите выше script внутрь $(document).ready( function() { ... })
Что он делает, это в основном удалить ваш предварительно определенный активный класс и снова включить его, высмеивая событие 'click'.
Fiddle: http://jsfiddle.net/jofrysutanto/tVSv9/2/
Ответ 3
Также стоит упомянуть,
Это будет работать:
$('#yourtabs a:first').tab('show');
$('.tab-pane:first').addClass('fade in');
Это не будет:
$('.tab-pane:first').addClass('fade in');
$('#yourtabs a:first').tab('show');
В противном случае ваш .fade будет скрыт в init.