Есть ли способ сделать наоборот, :hover
используя только CSS? Например: если :hover
есть on Mouse Enter
, есть ли в CSS эквивалент on Mouse Leave
?
Пример:
У меня есть HTML-меню с элементами списка. При наведении курсора на один из элементов появляется цветовая анимация CSS от #999
до black
. Как я могу создать противоположный эффект, когда мышь покидает область элемента, с анимацией от black
до #999
?
(Имейте в виду, что я хочу отвечать не только на этот пример, а на всю :hover
проблему «противоположности ».)
:hover
довольно проста:not(:hover)
; однако, не:hover
является синонимом и не то же самое, что . CSS не имеет понятия о событиях DOM.onmouseenter
:not(:hover)
onmouseleave
:hover
просто означает «элемент, над которым есть указатель мыши». Он не указывает, переместился ли указатель мыши с другого элемента на этот элемент. Это просто означает, что указатель мыши в данный момент находится на элементе.:not(:hover)
будет применяться. Вот демонстрация: jsfiddle.net/BoltClock/rghBXОтветы:
Если я правильно понимаю, вы можете сделать то же самое, переместив свои переходы на ссылку, а не в состояние зависания:
http://jsfiddle.net/spacebeers/sELKu/3/
Определение зависания:
По этому определению противоположностью наведения является любая точка, в которой указатель мыши не находится над ней. Кто-то намного умнее меня написал эту статью, установив разные переходы для обоих состояний - http://css-tricks.com/different-transitions-for-hover-on-hover-off/
источник
:hover
Цитируемое вами «определение» взято из W3Schools, который никоим образом не является авторитетным источником. Фактическую спецификацию можно найти на w3.org/TR/CSS21/selector.html#dynamic-pseudo-classes , хотя это не самое доступное объяснение.Просто используйте переходы CSS вместо анимации.
Живая демонстрация
источник
:hover
состояния.Нет, в CSS нет явного свойства для выхода мыши.
Вы можете использовать: hover для всех остальных элементов, кроме рассматриваемого, чтобы добиться этого эффекта. Но я не уверен, насколько это будет практично.
Я думаю, вам стоит взглянуть на решение JS / jQuery.
источник
Вы можете использовать переход CSS3
Несколько хороших ссылок:
http://css-tricks.com/different-transitions-for-hover-on-hover-off/
http://www.alistapart.com/articles/understanding-css3-transitions/
источник
Хотя ответов здесь достаточно, я действительно думаю, что пример W3Schools по этому вопросу очень прост (он сразу устранил путаницу (для меня)).
Таким образом, для переходов, в которых вы хотите, чтобы анимации «входа» и «выхода» были одинаковыми, вам необходимо использовать переходы в основном селекторе,
.button
а не в селекторе наведения.button:hover
. Для переходов, в которых вы хотите, чтобы анимации «входа» и «выхода» были разными, вам необходимо указать разные переходы основного селектора и селектора наведения.источник
Поместите продолжительность в поле без наведения:
источник
Просто добавьте переход к элементу, с которым вы возитесь. Имейте в виду, что при загрузке страницы могут быть некоторые эффекты. Например, если вы изменили радиус границы, вы увидите это при загрузке dom.
источник
Вы неправильно поняли
:hover
; он говорит, что указатель мыши находится над элементом, а не мышь только что вошла в элемент.Вы можете добавить анимацию в селектор без
:hover
достижения желаемого эффекта.Переходы - лучший вариант: http://jsfiddle.net/Cvx96/
источник
:hover
Похоже, что это противоположно:link
.(редактирование: технически не противоположный , потому что есть 4 селекторов
:link
,:visited
,:hover
и:active
пять , если включить.:focus
) .Например, при определении правила
.button:hover{ text-decoration:none }
для удаления подчеркивания на кнопке, подчеркивание появляется, когда вы откатываете кнопку в некоторых браузерах. Я исправил это с помощью.button:hover, .button:link{ text-decoration:none }
Это, конечно, работает только для элементов, которые на самом деле являются ссылками (имеют атрибут href).
источник
:link
просто выбирает ссылки, вот и все. Посмотрите здесь определение:link
: developer.mozilla.org/en-US/docs/Web/CSS/%3AlinkПросто добавьте переход и имя анимации в исходный класс, в вашем случае ul li a, просто добавьте свойство «transition», и это все, что вам нужно.
источник