У меня есть очень упрощенно наложения навигации, смотрите ниже:Expand CSS3 анимация не работает
<nav role="navigation" class="navigation">
<a href="#" class="brand-logo"><img src="img/beer-jug-logo.png" alt="brand logo"></a>
<ul class="navigation-list">
<li><a href="">Home</a></li>
<li><a href="">About</a></li>
<li><a href="">Design</a></li>
<li><a href="">Interiors</a></li>
<li><a href="">Contact</a></li>
</ul>
<a class="close"></a>
</nav>
Теперь я добавил очень простой CSS расширения и сокращения анимации и эти анимации переключаются с помощью JQuery. Код анимации ниже:
.navigation.shrinkMenu {
-webkit-animation-name: shrinkMenu;
-o-animation-name: shrinkMenu;
animation-name: shrinkMenu;
-webkit-animation-duration: 1s;
-o-animation-duration: 1s;
animation-duration: 1s;
-webkit-animation-fill-mode: both;
-o-animation-fill-mode: both;
animation-fill-mode: both;
}
.navigation.expandMenu {
-webkit-animation-name: expandMenu;
-o-animation-name: expandMenu;
animation-name: expandMenu;
-webkit-animation-delay: 3s;
-o-animation-delay: 3s;
animation-delay: 3s;
-webkit-animation-duration: 1s;
-o-animation-duration: 1s;
animation-duration: 1s;
-webkit-animation-fill-mode: both;
-o-animation-fill-mode: both;
animation-fill-mode: both;
}
@keyframes shrinkMenu {
90% {
opacity: 0;
}
99% {
left: 50%;
top: 50%;
bottom: 50%;
right: 50%;
}
100% {
opacity: 0;
visibility: hidden;
left: 50%;
top: 50%;
bottom: 50%;
right: 50%;
}
}
@keyframes expandMenu {
0% {
left: 50%;
top: 50%;
bottom: 50%;
right: 50%;
}
100% {
left: 0;
top: 0;
bottom: 0;
right: 0;
}
}
Начальные стили в меню ниже:
.navigation {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
/*background: rgba(244 ,41, 65,.9);*/
background: rgba(255 ,255, 255,.9);
display: flex;
align-items:center;
justify-content:center;
flex-direction:column;
z-index: 999;
}
код JQuery для переключения видимости меню ниже:
$('.close').on('click', function() {
$('.navigation').addClass('shrinkMenu');
});
$('.H-menu').on('click', function() {
$('.navigation').addClass('expandMenu');
});
Теперь, если вы видите fi ddle или даже запустить анимацию в Chrome или FF, вы заметите, что анимация сжатия работает просто отлично, но анимация расширения крутая, I.E. он просто не работает. Может кто-нибудь объяснить, почему анимация не работает?
Почему у вас есть префиксы '-o-'? '-ms-' и '-moz-' были бы понятны (но это необязательно), но просто '-webkit-' и '-o -' странно. Однако вы могли бы просто попытаться поместить свои «начальные» значения в '0%' вашей анимации? Поскольку 0% не удерживает значения «по умолчанию» (cf. actual element), поэтому имеет смысл, если в первый раз он работает правильно, но затем, когда вы его отмените, он не вернется к вашим начальным значениям, он перейдет к самым ранним значениям в анимации. – somethinghere