← Все вопросы

Как сделать плавное изменение цвета кнопки при наведении (transition)?

Задан 20 месяцев назад481 просмотров3 ответа
9

При наведении на кнопку цвет меняется резко, рывком. Хочу плавно. Что нужно добавить в CSS?

3 ответа

17

Добавь transition самому элементу (не в :hover!), и тогда любое изменение свойства будет плавным:

.btn {
  background: #4f46e5;
  transition: background 0.2s ease;
}
.btn:hover {
  background: #4338ca;
}

Важный момент: transition пишется на обычном состоянии, а не внутри :hover. Если написать только в :hover, то плавным будет наведение, а возврат — рывком. Можно перечислить несколько свойств: transition: background 0.2s, transform 0.2s; или анимировать всё: transition: all 0.2s ease;.

Андрей Галиуллин all удобно, но иногда тормозит — лучше перечислять конкретные свойства · 19 месяцев назад
6

transition: background 0.3s; на сам элемент, а не на :hover.

2

Положил transition внутрь :hover, и работает рывком назад. Вынес наружу — починилось.

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект