JSFiddle - React, Tailwind, and code Playground
by zlojnaxa
HTML
<div class="row">
<div class="col-lg-12">
<div class="question">
<span>Как заказать анонимно?</span>
<div class="plus">
<div class="plus-line"></div>
<div class="plus-line" style="transform: rotate(90deg);position: relative;bottom: 11px;"></div>
</div>
</div>
</div>
</div>
<div class="answer">
Основная проблема, с которой сталкиваются пользователи, торгующие криптовалютами, заключалась в том, что у них было приложение для доступа ко всем из одного места.
</div>
<div class="row">
<div class="col-lg-12">
<div class="question">
<span>Как заказать анонимно?</span>
<div class="plus">
<div class="plus-line"></div>
<div class="plus-line" style="transform: rotate(90deg);position: relative;bottom: 11px;"></div>
</div>
</div>
</div>
</div>
<div class="answer">
Основная проблема, с которой сталкиваются пользователи, торгующие криптовалютами, заключалась в том, что у них было приложение для доступа ко всем из одного места.
Основная проблема, с которой сталкиваются пользователи, торгующие криптовалютами, заключалась в том, что у них было приложение для доступа ко всем из одного места.
Основная проблема, с которой сталкиваются пользователи, торгующие криптовалютами, заключалась в том, что у них было приложение для доступа ко всем из одного места.
Основная проблема, с которой сталкиваются пользователи, торгующие криптовалютами, заключалась в том, что у них было приложение для доступа ко всем из одного места.
</div>
<div class="row">
<div class="col-lg-12">
<div class="question">
<span>Как заказать анонимно?</span>
<div class="plus">
<div class="plus-line"></div>
<div class="plus-line" style="transform: rotate(90deg);position: relative;bottom: 11px;"></div>
</div>
</div>
...
CSS
.row{
margin: 20px 0px 0px 0px;
}
.question{
width: 240px;
height: 50px;
background: #789;
cursor: pointer;
font-family: comic sans ms;
text-align: center;
color: #fff;
letter-spacing: 1px;
line-height: 46px;
}
.answer{
width: 100%;
overflow: hidden;
background: #4CAF50;
font-family: comic sans ms;
color: #fff;
letter-spacing: 1px;
line-height: 25px;
cursor: default;
margin: 0px 0px 0px 0px;
}
JavaScript
allClass(0.4); // время transition
function allClass(transition){
let question = document.querySelectorAll('.question'),
answer = document.querySelectorAll('.answer'),
arrayHeight = [];
const props = el => el.getBoundingClientRect();
[...question].forEach((e,i) => {
arrayHeight[i] = props(answer[i]).bottom - props(answer[i]).top + 10 + 'px';
answer[i].style.height = '0px';
setTimeout(()=> answer[i].style.transition = transition + 's', 50);
e.addEventListener('click',() => {
[...answer].forEach((e,i) => { answer[i].style.height = '0px'; });
props(answer[i]).height == 0 ? answer[i].style.height = arrayHeight[i] : '';
});
});
}