UNN4MED
@UNN4MED
Битрикс разработчик

Как быть с анимацией в Firefox?

На сайте есть элементы, которые вращаются. Не знаю как прям во всех браузерах, но в Firefox вокруг элементов появляется квадрат при анимации. Сам проверял в Edge, Yandex и Chrome, там этого нет.
Вот демонстрация в видео:
https://youtu.be/3CpMXIuuI78
https://youtu.be/Ec3qrBcFqfQ

Код css, например, кнопки бургера:
.header__burger {
    -webkit-mask: url(../images/icons/burger.svg) center / 100% no-repeat;
    mask: url(../images/icons/burger.svg) center / 100% no-repeat;
    background-color: #fff;
    width: 40px;
    height: 40px;
    display: none;
    transition: transform .3s ease;
}

.header__burger_close { // ------------АКТИВАЦИЯ АНИМАЦИИ
    -webkit-mask: url(../images/icons/close.svg) center / 100% no-repeat;
    mask: url(../images/icons/close.svg) center / 100% no-repeat;
    transform: rotate(360deg);
}
  • Вопрос задан
  • 80 просмотров
Решения вопроса 1
sfi0zy
@sfi0zy Куратор тега CSS
Creative frontend developer
Это известный баг у масок в Firefox. Проявляется и с mask, и с clip-path. Суть проблемы в том, что маска применяется уже после трансформации, после поворота, и при расчете ее границ возникают сложности с округлениями до целого количества пикселей. Браузер не знает, в какую сторону лучше округлять. В результате для каких-то пикселей на границах маска применяется не так, как мы ожидаем, ее граница как бы смещается на 1px. Самый простой и безболезненный способ избавиться от проблемы в вашем конкретном случае - избавиться от масок. Нет маски - нет проблемы. Исходя из вашей задачи ничто не мешает использовать svg-иконки сразу, как есть, в виде обычных картинок, без нагораживания всей этой истории с белым квадратом, который потом обрезается.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы