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

Почему нельзя писать transition в hover?

Как известно, для добавления плавной анимации для элемента используется свойство transition(или animation + keyframes). Люди задают вопросы, когда это свойство у них не срабатывает и им отвечают. Среди ответов можно найти, что transition нельзя писать в hover, а только в оригинал.
У меня появился вопрос: почему нельзя, если transition прекрасно работает в hover, например, при наведении на элемент плавно изменяется цвет? Даже в документалке Mozilla свойство написано внутри hover в нескольких примерах:
6252b05fb395a788891374.png
  • Вопрос задан
  • 236 просмотров
Решения вопроса 1
delphinpro
@delphinpro Куратор тега CSS
frontend developer
<div id="test">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Adipisci alias aliquam est fugit mollitia nisi quam qui! Aliquam aliquid consequatur dolorem ea, expedita ipsam laborum, mollitia praesentium, quidem sed voluptas?</div>

    <style>
        #test {
            color: red;
        }
        #test:hover {
            color: green;
            transition: color 3s ease;
        }
    </style>

Просто запустите этот код. И поймёте разницу.

Или лучше так:

#test {
            color: black;
            transition: color 1s ease;
        }
        #test:hover {
            color: red;
            transition: color 5s ease;
        }


Переход, указанный в hover, будет применён именно в этом состоянии – когда мышь наведена.
Переход, указанный в обычном состоянии будет применён при уходе мыши с элемента.
В данном примере видно разницу скорости анимации.
Если для hover переход не указан, будет применён переход обычного состояния и при наведении мыши, и при ее уходе. Если переход указан только для hover, то при отведении мышки плавного перехода не будет.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы