尝试使用smoothstate.js实现页面过渡动画,但目前进展不佳。这里有一个jsfiddle,但它会抛出控制台错误,而我在开发时没有遇到这个问题。但你仍然可以看到我所说的CSS问题:http://jsfiddle.net/3f5wp9xL/6/。这是另一个演示,没有控制台错误:http://davidwesleymartin.com/animtest/index.html。所有动画都在CSS中设置(通过@keyframe、animation属性)。这些动画在页面加载时有效,但在尝试在链接被点击后将它们反转时表现奇怪。我正在尝试通过在添加“is-exiting”退出类到主容器后重置“animation-direction”属性来将其反转。
唯一让这个生效的方法是同时设置一个新的“animation-name”值,如果与之前相同,它将无法工作。
相关HTML:
唯一让这个生效的方法是同时设置一个新的“animation-name”值,如果与之前相同,它将无法工作。
相关HTML:
<div id='main'>
<aside class='main-side'>
<div class='anim_element anim_element--fadeIn'>
<h2>sidebar</h2>
<ul>
<li>
<a href='index.html'>Link 1</a>
</li>
<li>
<a href='index.html'>Link 2</a>
</li>
<li>
<a href='index.html'>Link 3</a>
</li>
</ul>
</div>
</aside>
<div class='main-content'>
<div class='anim_element anim_element--fadeInLeft'>
<h1>Main Content</h1>
<p>Lorem...</p>
</div>
</div>
</div>
相关的CSS(注意:在演示中一切都被正确地添加了前缀,这不是问题):
@keyframes fadeIn{
0% {
opacity:0;
transform:scale(0.8);
}
100% {opacity:1;}
}
@keyframes fadeInLeft{
0% {
opacity:0;
transform: translate3d(-100%, 0, 0);
}
100% {
opacity:1;
}
}
#main .anim_element{
animation-duration: .25s;
transition-timing-function: ease-in;
animation-fill-mode: both;
}
#main .anim_element--fadeIn{
animation-name: fadeIn;
}
#main .anim_element--fadeInLeft{
animation-name: fadeInLeft;
}
#main.is-exiting .anim_element{
animation-name: fadeIn;
animation-direction: alternate-reverse;
}