Я пытаюсь реализовать индикатор выполнения и таймер, используя TimelineLite:
HTML:
<div id="progress"></div>
{{timeline.time()}}
CSS:
#progress {
width: 100%;
height: 30px;
background-color: red;
}
Вот что я хочу:
Когда страница загружается, индикатор выполнения начинает анимацию от 100% до 0% ширины (длительность 10 секунд). Также я хочу показать результат функции time
.
Вот что я сделал:
public timeline = new TimelineLite();
ngOnInit() {
this.start();
}
start() {
const progress = document.getElementById('progress');
this.timeline.fromTo(progress, 10, {width: '100%'}, {width: 0, ease: Linear.easeNone});
}
Поэтому, когда страница загружается, индикатор выполнения работает, а таймер - нет. Я не знаю почему. Если я попытаюсь установить тайм-аут на 3 секунды на ngOnInit
, это сработает:
ngOnInit() {
setTimeout(() => this.start(), 3000);
}
Также, если я создаю кнопку, которая при нажатии вызывает функцию start
, она работает:
<button (click)="start()">Start</button>
Так что проблема в том, что таймер не работает, если я пытаюсь вызвать функцию fromTo
из ngOnInit
.