Подробнее, Читать меньше Скрипт — настройка начальной высоты div и и другой высоты при нажатии кнопки

#jquery

#jquery

Вопрос:

Всем доброе утро!

У меня есть скрипт читать больше / читать меньше. Пользователь нажимает на вкладку «Подробнее», и появляется больше текста. Вот как это настраивается. существует DIV, который содержит все содержимое, внутри этого DIV находится другой DIV, который также содержит дополнительное содержимое. Оба DIVS не имеют фиксированной высоты. Я хотел бы установить начальную высоту для контейнера DIV, который является полем содержимого, Пример: начальная высота, скажем, 200 пикселей, а при нажатии кнопки «Подробнее» сделайте поле содержимого размером 400 пикселей.

Вот код (html):

 <div class="contentBox">
<p>Initial Text goes here</p>

<a class="addlTextTrigger" href="#">Read More</a>

<div class="addlTextBox">
<p>Additional Text here.</p>
</div>
</div>
  

И вот jQuery, пожалуйста, не jQuery переключает стили, но это просто используется для оформления вкладок / ссылок, используемых для запуска функции «Читать больше» / «читать меньше».

Вот jQuery:

 $(document).ready(function() {
$('.addlTextBox').hide();
$('.addlTextBoxTrigger').toggle(function(){
$('.addlTextBox').fadeIn('fast');
$(this).text("Read Less");
},
function(){
$('.addlTextBox').hide('fast');
$(this).text("Read More");
});
});

$(document).ready(function() {
$('.addlTextBoxTrigger').click(function(){
$(this).toggleClass('readMoreClick');
});
});
  

Ответ №1:

Живой пример

Использование css-классов и их включение / выключение

Javascript:

 $(document).ready(function() {
    $('.addlTextBox').hide();
    $(".contentBox").addClass("readLess");
    $('.addlTextTrigger').toggle(function() {
        $('.addlTextBox').fadeIn('fast');
        $(".contentBox").removeClass("readLess");
            .addClass("readMore");
        $(this).text("Read Less");
    }, function() {
        $('.addlTextBox').hide('fast');
        $(".contentBox").addClass("readLess");
            .removeClass("readMore");
        $(this).text("Read More");
    });
});
  

CSS:

 .readLess {
    height: 200px;
}

.readMore {
    height: 400px;
}
  

Комментарии:

1. Я немного сбит с толку. Поле содержимого уже является классом, который присваивается div, содержащему дополнительное содержимое. Я должен был упомянуть, что я установил начальную высоту для поля содержимого, однако мне нужно, чтобы эта высота изменялась в поле содержимого при нажатии кнопки (tab).

2. @Overmars затем просто переключите класс, который изменяет высоту на 400.