antiplus
@antiplus
Изучаю возможности html5 и css3

Почему дергаются изображения при hover с использованием transform и transition?

Обратил внимание, что при наведении на изображения они как бы подергиваются (особенно заметно в самом конце эффекта).
При этом, при тестировании с localhost все работает корректно, без подергиваний.
Тестировал на Chrome и FF.
Подскажите, пожалуйста, в чем может быть проблема и как ее решить?

Часть кода:
img {
  width: 150px;
  height: 150px;
  position: absolute;
  transform: rotate(-45deg);
  box-shadow: 0 0 0 4px white;
}
img:hover {
  width: 300px;
  height: 300px;
  z-index: 10;
  transform: rotate(0deg);
  transition: 2s;
}


Спасибо!
  • Вопрос задан
  • 5709 просмотров
Пригласить эксперта
Ответы на вопрос 3
@Alexodiy
will-change: transform; - ознакомьтесь с этим свойством, реально решает проблему.
Ответ написан
t-alexashka
@t-alexashka
Сразу пишу legacy код
Вообще они могут дергаться из за того что во время анимации у них промежуточное состояние со своими значениями, а по завершении - финальное, и значения параметров на конец анимации могут на 0.000х отличаться, и последним действием идет "подгон" промежуточного до финального значения. Должно помочь небольшая корректировка времени.
Ответ написан
arizona
@arizona
а что я, собственно, здесь делаю?...
Возможно, что это происходит из-за изменения размеров. Попробуйте менять размер через scale:
img {
  width: 300px;
  height: 300px;
  position: absolute;
  transform: rotate(-45deg) scale(0.5);
  box-shadow: 0 0 0 4px white;
}
img:hover {
  z-index: 10;
  transform: rotate(0deg) scale(1);
  transition: 2s;
}
Ответ написан
Ваш ответ на вопрос

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

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