Синхронизация аудио и анимации в angularjs

Я пытаюсь синхронизировать звук с анимацией в angularjs. Я делал это до использования jQuery, но теперь, когда я перенес свой проект на angularjs, я пытаюсь придерживаться философии angularjs.

В jQuery я добавил атрибут data-time="time" к каждому элементу span, содержащему слово. Я сохранил все тайминги в массиве. Когда была вызвана функция воспроизведения звука (), я использовал таймер для отслеживания прошедшего времени. Через определенные промежутки времени я опрашивал таймер (каждые 10 мс, поскольку все тайминги были округлены до ближайших 10 мс). Если текущее время соответствовало текущему времени в массиве, я использовал селектор, чтобы найти диапазон, атрибут data-time которого содержал текущее время. Этот промежуток будет выделен путем добавления к нему класса "highlight". Схема работала достаточно хорошо.

Однако в angularjs я пытаюсь добиться того же, не используя селекторы. Кто-нибудь знает способ, которым я мог бы сделать это? Мне сказали, что все, что делается с помощью jQuery, может быть сделано в angularjs.

Большое спасибо.

1 ответ

Решение

Следите за временем так же, сохраните его в $scope.currentTime и просто используйте ng-класс, например,

<span ng-class="{highlight:currenttime == 910}">word</span>

910 здесь будет то, что вы назначаете на data-time в версии jquery.

если вы повторяете нг слова в угловой версии, это может быть так

<span ng-repeat="word in words" ng-class="{highlight:currenttime == word.time}">{{word.text}}</span>
Другие вопросы по тегам