Проблема в том, что is-transitioning
добавляется с самого начала, поэтому ваши элементы уже на opacity:1
, и notihng произойдет.Вам нужно добавить класс, чтобы вызвать изменение непрозрачности и увидеть переход.
Другой способ, если вы не можете добавить класс, это использовать анимацию.Вот пример JS, который вы можете преобразовать в реакцию:
Array.from(document.querySelectorAll('.item')).map((i, index) => {
i.style.animationDuration = `${(index * Math.trunc(Math.random() * 1000)) + 200}ms`;
});
.container {
display: flex;
}
.item {
display: flex;
justify-content:center;
align-items: center;
width: 1rem;
height: 1rem;
background-color: teal;
padding: 2rem;
margin-right: 1.2rem;
border-radius: 10px;
font-size: 2rem;
color: white;
opacity: 0;
animation:change 2s forwards;
}
@keyframes change{
to {
opacity:1;
}
}
<div class="container">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
<div class="item">5</div>
</div>
Просто сохраните тот же код, который вы написали, замените transitionDuration
на animationDuration
и настройте CSS.