Возможно ли добавить плавной в данной ситуации?

212
22 октября 2017, 20:43

Привет сделал простой аккордеон.

<div class='item'>
<div class='submenu'> submenu<div>
</div>

Логика простая submenu скрыто при клике на item добавляется класс active и в стилях item.active{display: block} Только отсуствует плавность. Возможно ли добавить, либо соит изменить стили как то ?

Answer 1

Свойство display неанимируемо.

Но необходимого вам эффекта можно добиться при помощи изменения свойства visibility (тоже неанимируемо) и opacity, которое анимировать можно.

Пример:

var t = document.querySelector(".box"); 
 
setInterval(() => { 
    t.classList.toggle("active"); 
}, 1000);
.box { 
    transition: opacity 1s linear; 
    padding: 1rem; 
     
    visibility: hidden; 
    opacity: 0; 
     
    background-color: red; 
} 
 
.box.active { 
    visibility: visible; 
    opacity: 1; 
}
<div class="box">Block</div>

Answer 2

Попробуй поиграться высотой:

.item .submenu {
    height: 0;
    overflow: hidden;
    transition: 0.4s all;
}
.item.active .submenu {
    height: auto;
}

Либо на jQuery можно повесить событие на click

$("item").on('click', function() {
    $(this).find('.submenu').slideToggle();
})
READ ALSO
Внутренний класс - Java SE

Внутренний класс - Java SE

Создать класс City (город) с внутренним классом, с помощью объектов которого можно хранить информацию о проспектах, улицах, площадях

611
JNI DETECTED ERROR IN APPLICATION: jarray was NULL

JNI DETECTED ERROR IN APPLICATION: jarray was NULL

Всем привет, у меня возникла ошибка вот в этом куске кода :

461
Не работает Speech Library на Android API 23+

Не работает Speech Library на Android API 23+

Использую библиотеку Speech для реализации "Сири" xD Вот код:

222
Обращение к функции из fragment

Обращение к функции из fragment

Ребят, помогите решить проблемуЧтобы воспользоваться функцией, ее надо сделать статичной

157