ivankirshin, использование setTimeout - это точно костыль, без вариантов. Если проблема в том, что что-то не успевает отрендерится - есть метод nextTick, переданная ему функция будет вызвана после того, Vue обновит DOM-дерево.
Насчёт css - тут я вообще ни разу не специалист, если где какие проблемы со стилями, просто повышаю специфичность интересующих меня селекторов.
Не html, а svg. И вручную создавать svg элементы надо по-другому - для чего и указывается неймспейс. Нужны подробности - гугл к вашим услугам, сам я не в курсе, да и как-то малоинтересно.
zlodiak, что значит ничего общего, вы документацию по ссылке читали? Если есть свойство xxx, то при двусторонней привязке будет обрабатываться событие xxxChange, если имя свойства yyy - то имя события yyyChange.
Janjabuja, можно по окончанию аудио в очереди (oneded, если queue.length равно нулю) генерировать событие, в обработчике которого запускать следующую очередь.
А, ну и конечно надо будет разделить запуск очереди и добавление в неё новых элементов.
zwezew, индекс активного блока устанавливается в зависимости от равенства его текущего значения индексу кликнутого блока - если равны, то null (если кликнули на открытый блок, он должен закрыться), иначе берётся индекс кликнутого блока (клик на закрытый блок открывает его).
То же самое, но без тернарного оператора, может так понятнее будет:
if (active === index) {
active = null
} else {
active = index
}
"Как получает индекс" - откройте документацию vue , почитайте про v-for.
Могу разобраться, но не хочу, лень - извините. Могу рассказать, как подобного избежать - отменяйте действие по умолчанию (preventDefault) при клике на корешки вкладок.