Не получается сделать jQuery анимацию появления элемента
Коллеги, здравствуйте!
Есть у меня table (не спрашивайте почему, просто другого нет).
Мне нужно сделать чтобы его tbody открывался/скрывался по щелчку на thead.
<table class="table-spoiler">
<thead><tr><th>Заголовок</th></tr></thead>
<tbody><tr><td>Содержимое</td></tr></tbody>
</table>
И скрипт
$('table.table-spoiler thead').click(function () {
t = $(this).parent("table").find("tbody").eq($(this).index($("thead")));
if ( t.css('display') == 'none' ) {
t.css('display', 'table-row-group');
}
else {
t.css('display', 'none');
}
});
И стиль
table.table-spoiler tbody { display: none; }
Вроде, работает. Открывает и закрывает.
Но мне бы неплохо сделать какую-нибудь анимацию открывания, а то тупо как-то: экран дернулся и что-то довольно сильно изменилось (у меня таблица там открывается немаленькая).
Меня вполне устроит если таблица откроется пустым полем, а потом на ней проявится содержимое.
Пишу:
$('table.table-spoiler thead').click(function () {
t = $(this).parent("table").find("tbody").eq($(this).index($("thead")));
if ( t.css('display') == 'none' ) {
t.css('display', 'table-row-group');
t.css('opacity', '1');
}
else {
t.css('opacity', '0');
t.css('display', 'none');
}
});
И обновляю стиль:
table.table-spoiler tbody {
display: none;
opacity: 0;
transition: opacity 1s ease-out;
}
И, по идее, должно при нажатии на закрытую таблицу сначала открыться пустое tbody с opacity 0, а потом opacity проявиться за 1 секунду с указанным ease.
Но почему-то эффекта transition нет. Врубает в момент и вырубает мигом.
В браузере если эти действия делать вручную, все работает, ессессно.
Что я делаю не так?