2016-12-19 7 views
-1

Почему переход, который я настроил, не анимирован? Я бы ожидал, что, поскольку класс animate удаляется, а затем снова добавляется к элементу, он будет повторно обновляться после переключения вкладок.Переходы CSS в закладках

https://jsfiddle.net/jstn/Lt6qfv7s/

Спасибо,

Джастину

$('button').on('click', function() { 
 
\t var tab = $(this).attr('data-target'); 
 

 
\t $('.tab').removeClass('active'); 
 
\t $(tab).toggleClass('active'); 
 
\t 
 
\t $('.content').removeClass('animate'); 
 
\t $(tab).find('.content').toggleClass('animate'); 
 
});
.tab:not(.active) { display: none; } 
 

 
.content { transition: 3s all ease-out; } 
 

 
.content.animate { opacity: .3; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button data-target=".tab-1">Tab #1</button> 
 
<button data-target=".tab-2">Tab #2</button> 
 

 
<div class="tab tab-1"> 
 
\t <div class="content">This is Tab #1</div> 
 
</div> 
 

 
<div class="tab tab-2"> 
 
\t <div class="content">This is Tab #2</div> 
 
</div>

ответ

1

Поскольку вы используете display: none, удалите это и используйте opacity: 0 вместо

$('button').on('click', function() { 
 
    var tab = $(this).attr('data-target'); 
 

 
    $('.content').removeClass('animate'); 
 
    $(tab).find('.content').toggleClass('animate'); 
 
});
.content { 
 
    opacity: 0; 
 
    transition: 3s opacity ease-out; 
 
} 
 
.content.animate { 
 
    opacity: .3; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button data-target=".tab-1">Tab #1</button> 
 
<button data-target=".tab-2">Tab #2</button> 
 

 
<div class="tab tab-1"> 
 
    <div class="content">This is Tab #1</div> 
 
</div> 
 

 
<div class="tab tab-2"> 
 
    <div class="content">This is Tab #2</div> 
 
</div>

+0

Это технически отвечает на вопросы, но я хочу, чтобы вкладка настройки. Выполнение этого решения означает, что вкладка 1 все еще там, вы просто не можете ее увидеть. –

+0

@JustinBreen Используя 'position: absolute' вы можете вывести их из потока ... хотя это хорошее решение в этом случае я не могу сказать, так как мне нужно знать всю структуру разметки, как до, так и до после этих вкладок – LGSon

+0

Хорошо, что чувствует себя взломанным. Тогда мне нужно будет определить определенную высоту для моего таблеток. Был надеяться, что сможет использовать переходы CSS с 'display: none', как только объект вернется к нормальному отображению. Я не пытаюсь перевести свойство display. Я просто хочу, чтобы элемент запускал его переход снова, как ожидалось. –