Я хочу построить простую «карусель» в React. У меня есть список вопросов, на которые я хочу, чтобы пользователь ответил. Когда вы нажимаете next
, отображается следующий вопрос. Я хочу также добавить кнопку previous
в будущем. В настоящее время работает анимация для раскрываемого предмета.
Однако на мобильном экране экран прыгает вверх при его анимации от одного делителя к другому (с небольшой задержкой)
Высота parent div
всегда одинаковатак почему же он прыгнул?
JSX
{ this.state.activeIndex === 0 &&
<div className="surveyContainer--surveyList__animate">
<div>
<SelectField labels={data.meat.labels} value={this.props.survey.meat}/>
</div>
<div>
<Button handleClick={() => this.handleActiveIndex(2)} label="Next"/>
</div>
</div>
}
{this.state.activeIndex === 1 &&
<div className="surveyContainer--surveyList__animate">
<div>
<SelectField labels={data.energy.labels} value={this.props.survey.energy}/>
</div>
<div>
<Button handleClick={() => this.handleActiveIndex(2)} label="Next"/>
</div>
</div>
}
<SelectField/>
и Button
являются пользовательскими компонентами.
CSS
.surveyContainer--surveyList__animate {
animation: slide-in 0.4s ease;
}
@keyframes slide-in {
0% {
opacity: 0;
transform: translateX(200px);
}
100% {
opacity: 1;
transform: translateX(0);
}
}
Как исправить прыжок? Кроме того, что может быть лучшим подходом для всего этого? Если я хочу добавить кнопку previous
, переключение анимации будет кропотливой функцией.