Я потратил много времени, пытаясь понять, как анимировать символ на ломаной линии с помощью API Карт Google с помощью функций замедления в стиле CSS.Я получил это для работы с этим Gist и в этом примере Google Maps API .Теперь я пытаюсь запускать setInterval(myFunc, 10)
каждые ~ 5 секунд .Вот соответствующий фрагмент кода:
function animateCircle(line) {
var count = 0;
let refreshRate = 10;
let countFunc = EasingFunctions.easeInOutCubic;
let perc = 0
function moveCircle() {
count = count < 1 ? (count + 0.005) : 0;
perc = countFunc(count) * 100 <= 100 ? countFunc(count) * 100 : countFunc(count) * 100 - 100
perc = perc >= 0 ? perc : 100 + perc
perc === 0 ? window.clearInterval(moveCircInterval) : ''
// console.log(count + " // " + perc)
var icons = line.get('icons');
icons[0].offset = perc + '%';
line.set('icons', icons);
}
var moveCircInterval = window.setInterval(moveCircle, refreshRate);
window.setInterval(() => moveCircInterval = window.setInterval(moveCircle, refreshRate), 5000)
}
И полный JSFiddle, чтобы увидеть его в действии .
Этот код не велик, но почти за работой.С моей стороны, он ускоряется с течением времени, особенно если вы отойдете от вкладки и вернетесь назад.