【发布时间】:2014-11-15 06:01:47
【问题描述】:
尝试使用smoothstate.js 为一些页面过渡设置动画,但我陷入了僵局。
这是一个 jsfiddle,但它引发了我在开发时没有遇到的控制台错误。但是您仍然可以看到我正在谈论的 css 问题:http://jsfiddle.net/3f5wp9xL/6/
这是另一个没有控制台错误的演示:http://davidwesleymartin.com/animtest/index.html
所有动画都在 CSS 中设置(通过@keyframe,动画属性)。
动画在页面加载时起作用,但是当我在单击链接后尝试反转它们时表现得很奇怪。我试图通过在单击链接后将退出类('is-exiting')添加到主容器时重置'animation-direction'属性来反转它们。
我可以让它工作的唯一方法是为“动画名称”设置一个新值,如果它与以前的值相同,它就不起作用。
相关 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;
}
【问题讨论】:
-
您能否将演示代码放在 jsfiddle 中,嵌入问题本身或类似的东西中?它会让你早一点帮助你
-
好吧我在jsfiddle上加了一个demo
-
已修复。这就是我喝醉了的 jsfiddling 得到的。
标签: jquery css jquery-plugins css-transitions css-animations