#javascript #html #css #svg #анимация
При клике на элемент происходит анимация, но можно ли вернуть элемент в исходное
состояние при повторном клике. (Сделать обратную анимацию)
const btn = document.querySelector('div[role="button"]');
const micro = document.querySelectorAll('.micro');
btn.onclick = () => {
micro.forEach((e) => {
e.beginElement();
});
}
div[role="button"] {
border: 0.0625rem solid;
width: 68px;
font-size: 0;
}
Ответы
Ответ 1
Немного скорректировал SVG и добавил чуть-чуть JS. Правда, в погоне за минимальными изменениями, слегка изменилась анимация (не знаю, насколько это критично): const btn = document.querySelector('div[role="button"]'); const micro = document.querySelectorAll('.micro'); btn.onclick = () => { micro.forEach((e) => { let sTemp = e.getAttribute('from'); e.setAttribute('from', e.getAttribute('to')); e.setAttribute('to', sTemp); e.beginElement(); }); } div[role="button"] { border: 0.0625rem solid; width: 68px; font-size: 0; }Ответ 2
Зеленая кнопка имеет id="play" Запуск анимации от радиокнопки к иконке микрофона Красная кнопка имеет id="stop" Запуск анимации от иконки микрофона к радиокнопке Заменил прямоугольник нас атрибутом stroke-linecap="round" что позволило убрать лишние анимации. Если анимация находится внутри тегов svg элементов, то не нужно писать xlink:href Эта переадресовка нужна, когда анимация находится вне анимируемых элементов.
Комментариев нет:
Отправить комментарий