У меня есть процедура для таймера для анимации.Я хочу сделать анимацию логотипов вроде https://stripe.com/us/customers. Но у меня бесконечная загрузка страницы, поэтому она не работает.
Я пытался использовать процедуру в разных частях кодаи попытался изменить интервал для лучшей оптимизации (я думаю, что мой компьютер не может работать с интервалом в 1 мс), но это не помогло мне.
Все это из одного файла.Состояние:
class Home extends React.Component {
constructor(props) {
super(props);
this.state = {
submitError: false,
width: 0,
height: 0,
timer: 0
};
Процедура:
TimeForLogos() {
const time = setInterval(() => {
const passedTime = this.state.timer + 0.1;
if (passedTime === 20) {
clearInterval(time);
}
this.setState({
timer: passedTime,
});
}, 100);
}
Я пытаюсь использовать его в рендере (мне нужно, чтобы процедура начиналась при открытии сайта) и пытаюсь сделать кнопку (я думалэто поможет мне решить проблему бесконечной загрузки).Итак, часть кода от render на данный момент:
<div className={s.logos}>
<span onClick={this.TimeForLogos()}>go</span>
{LogoData.map(logo => (
<div
className={s.logo}
style={{
right: `${logo.positionX}px`,
top: `${logo.positionY}px`,
width: logo.width * 1.1,
padding: `${(logo.width - logo.height) / 2} 0`,
transform: `translate(${this.state.timer * 10}px,0) scale(1)`,
}}
>
<img
src={logo.img}
alt=""
style={{
width: logo.width,
height: logo.height,
}}
/>
</div>
))}
</div>
Итак, вопрос.Как я могу обновить свой код, чтобы он работал?И мне нужно сделать так, чтобы процедура работала при открытии сайта (анимация должна воспроизводиться при открытии сайта).Как я могу это сделать?