#javascript #css #svg #анимация #microsoft_edge
Данный вопрос уже можно сказать не актуален Microsoft Edge-Chromium
Insider
Чтобы не возникало лишних вопросов, и не было предложений, которые не
решают вопроса. Изменил примеры на оригинал.
Коллеги, я знаю два способы анимации...
Оба варианта работают во всех доступных мне браузерах, не проверял только Safari
Первый - это с использованием функции elem.beginElement();
var wrapper_svg_1 = document.getElementById("wrapper_svg_1"),
close = document.getElementById('close'),
open = document.getElementById("open");
let flag = true;
wrapper_svg_1.addEventListener('click', function() {
if (flag == true) {
close.beginElement();
flag = false;
} else {
open.beginElement();
flag = true;
}
});
* {
margin: 0;
padding: 0;
}
html,
body {
width: 100vw;
height: 100vh;
background: #272727;
font-size: 20px;
}
#wrapper {
width: 100vw;
height: 100vh;
background: transparent;
}
Вариант второй, можно реализовать при помощи смены class-A элементу
let wrapper = document.getElementById("wrapper"),
iconActive = document.getElementById("icon-active");
wrapper.addEventListener('click', function() {
iconActive.classList.toggle('icon-active');
});
* {
margin: 0;
padding: 0;
}
html,
body {
width: 100vw;
height: 100vh;
background: #272727;
font-size: 20px;
}
#wrapper {
width: 100vw;
height: 100vh;
background: transparent;
}
В первом примере Microsoft Edge не поддерживает функцию elem.beginElement();
Вопрос, есть ли ее аналог для Microsoft Edge && IE?
А во-втором варианте, главное то, что class элементу left добавляется и удаляется,
но не работает. Кто подскажет, что делать?
Главным образом,надо решить проблему с EDGE...
IE - не обязательно,
но для общей информации и можно привести пример решение для этого браузера от -
"САТАНЫ"
Данный вопрос на StackOverflow
Ответы
Ответ 1
Для решения данной проблемы нужно использовать polyfill( FakeSmile не подходит, так как не работает в Microsoft Edge ( исправьте, если не прав ) ). Вот данный polyfill — svg-animation. Подключаем скрипты, добавляем анимацию и тестируем в браузерах, которые не поддерживают SMIL. Пример кода: var rect= document.getElementById('rectangle'); rect.animate([{ width: '200' }, { width: '0' }], { duration: 2000, iterations: 10 });
Комментариев нет:
Отправить комментарий