Открывающийся и закрывающийся блок на jquery

260
10 января 2018, 16:17

Всем привет. Есть несколько таких блоков

$(".btn_more1").click(function() { 
  $(this).prev("div.ctn_more1").slideToggle("slow"); 
});
.ctn_more1 { 
  height: 40px; 
  overflow: hidden; 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<div class="ctn_more1">1</div> 
<button class="btn_more1">Подробнее</button></div> 
 
<div class="ctn_more1">2</div> 
<button class="btn_more1">Подробнее2</button></div>

Т.е. его максимальная высота 40px, при нажатии на кнопку должна открываться вниз, на всю высоту.Но он закрывает и открывает только на вот эти 40 px. Как сделать, что-бы отрабатывала на всю высоту. Плюс еще вопрос, как сделать так что-бы в блоке последняя строчка как бы исчезала медленно? А то тут явно обрывается текст, что не очень красиво.

Answer 1

Попробуйте что-то вроде:

$(".btn_more1").click(function() {
  $(this).prev("div.ctn_more1").toggleClass('ctn_more2');
});

а в классе ctn_more2 например указать высоту 300px (или другую)

Answer 2

Пример: https://codepen.io/romkaa/pen/VyQPpv

Просто убери вообще значение высоты. Если ты используешь slideToggle - это тебе не нужно.

На счет обрезания текста, я бы добавлял еще класс дополнительный, у которого сделал бы after псевдоэлемент, где просто через прозрачность плавно закрашивал бы текст.

Код

.ctn_more1 {
    display: none;
    position: relative;
  overflow: hidden;
    padding: 5px 0 10px;
}
.ctn_more1::after {
    position: absolute;
    content: '';
    width: 100%;
    height: 30px;
    bottom: 0;
    left: 0;
    background: linear-gradient(to bottom, rgba(255,255,255,1) 0%, rgba(255,255,255,0) 100%); 
}
READ ALSO
Событие ресайза для div?

Событие ресайза для div?

Чистый JavaScriptДля <div> устанавливаю в CSS resize: both; Всё работает

202
Как восстановить непрерывную последовательность первичного ключа в MySQL?

Как восстановить непрерывную последовательность первичного ключа в MySQL?

Первичным ключом в таблице является целое число с опцией auto_incrementЯ удалил запись в таблице с id(первичным ключом) 4

186
Как писать юнит-тесты для скриптов которые работают с базами данных?

Как писать юнит-тесты для скриптов которые работают с базами данных?

Добрый день, подскажите пожалуйста какие существуют подходы если нужно протестировать части веб-приложения которые работают с базой данных...

240
Сортировка в нужном порядке

Сортировка в нужном порядке

Требуется создать свой порядок сортировки вида: 1,2,3,null,null,null,nullПробовал создать дополнительное поле, и пронумеровать нужное

184