Кажется, что когда вкладка не активна, высота .wrap
внутри равна 0.
Конечно, roXon опубликовал отличное решение, которое хранит высоту под нагрузкой и будет изменять ссылку для чтения для всех слайдов. И это может быть предполагаемым эффектом. Я хотел бы отметить, что, возможно, было бы лучше поместить div-read-more вне слайдов, потому что вы выполняете их все, и каждый раз они будут иметь одинаковое значение.
Я хотел посмотреть, на что это похоже, если развернуть только слайд, на котором нажата дополнительная информация, без сохранения исходной высоты в объекте данных. Вот что я придумал:
Вот скрипка
Сначала css:
.wrap {
position: relative;
padding: 10px;
overflow: hidden;
min-height: 120px;
}
тогда js:
$(document).ready(function() {
$(".pagination").tabs(".slides li", {
event: 'mouseover',
rotate: true,
}).slideshow({
clickable: false,
autoplay: false,
interval: 4000 // in milliseconds 4000 = 4 seconds
});
var closedSlideHeight = 120; // px
$('.slides .read-more').click(function() {
var $readMore = $(this),
$wrap = $readMore.siblings('.wrap');
var fullHeight = function() {
var totalHeight = 0;
$wrap.children().each(function() {
totalHeight += parseInt($(this).outerHeight(true));
});
return totalHeight.toString() + "px";
};
var isClosed = function() {
return (closedSlideHeight >= parseInt($wrap.height()) && !($wrap.height() == 0));
};
var closeWrap = function() {
$wrap.animate({'height': (closedSlideHeight.toString() + "px")});
$readMore.html('<a href="#">Click to Read More</a>');
};
var openWrap = function() {
$wrap.animate({'height': fullHeight() });
$readMore.html('<a href="#">Close</a>');
};
if (isClosed()) {
openWrap();
} else {
closeWrap();
}
}).click();
})