Google Chrome добавил исправление ошибки веб-набора в версию 27.0.1453.110 m
Эта ошибка исправлена: http://trac.webkit.org/changeset/138632
ЭТО ВОЗМОЖНО для анимации псевдо :before
и :after
, вот пара примеров для анимации псевдоэлементов :before
и :after
.
Вот модификация вашего примера выше с некоторыми правками, что делает анимацию более плавной, без смоделированной mouseleave
/ mouseout
задержки при наведении:
http://jsfiddle.net/MxTvw/234/
Попробуйте добавить главный селектор #foo
с сгруппированным псевдоклассом :hover
во втором :hover
правиле псевдокласса.Также добавьте свойство transition
, а не только префиксные свойства, специфичные для поставщика, для transition
:
#foo:after{
display: block;
content: '';
width: 200px;
height: 200px;
background: red;
-webkit-transition: all .4s ease-in-out;
-moz-transition: all .4s ease-in-out;
-o-transition: all .4s ease-in-out;
transition: all .4s ease-in-out;
}
#foo,
#foo:hover:after,
#foo:hover:before{
width: 250px;
height: 250px;
}
Обратите внимание, что для продвижения вперед любые псевдоэлементы, такие как :before
и :after
, должны использовать двойное двоеточиесинтаксис ::before
и ::after
.Этот пример имитирует появление и исчезновение с использованием наложения background-color
и background-image
при наведении:
http://jsfiddle.net/MxTvw/233/
В этом примере имитируется анимация вращения при наведении:
http://jsfiddle.net/Jm54S/28/
Конечно, для продвижения вперед со стандартами css3 мы могли бы использовать ::before
и ::after
.
Это работает в последних версиях Firefox, Chrome, Safari, Opera18+, IE10, IE11 (IE9 и ниже не поддерживают переходы css3 или анимацию.)