Допустим, есть такой код:
$p.animate({
'background-color': 'red',
'color': 'green',
'padding': '10px'
}, 1000);
Я хочу дальше по щелчку мыши, например, остановить .animate() и узнать оставшееся время, чтобы запустить другой animate - который будет откатывать изменения первого. Как остановить я знаю. А вот как получить оставшееся время? Или хотя бы время, которое прошло после начала анимации (я вычту его из 1000)?
можно с началом анимации записывать текущий timestamp, потом при остановке брать уже timestamp в момент остановки и отнимать от него записанный в момент запуска, получите время прошедшее с начала анимации
Date.now() возвращает количество миллисекунд, прошедших с 1 января 1970 года
let time;
$('#start').on('click', () => {
$('p').animate({
'padding': '100px'
}, 3000);
time = Date.now();
});
$('#stop').on('click', () => {
$('p').stop().animate({
'padding': '0px'
}, Date.now() - time);
});
p{
background: #ccc;
height: 30px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button id="start">start</button>
<button id="stop">stop</button>
<p></p>
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости